From 4c7114abdcae2944ef063bbda8229bbf95e5a967 Mon Sep 17 00:00:00 2001 From: Mehdi Janbarari Date: Tue, 27 Sep 2022 11:43:50 +0300 Subject: [PATCH] Release 1.0.0-beta1 (#44) Merge Release 1.0.0-beta1 --- .circleci/config.yml | 6 +- .github/pull_request_template.md | 41 + .gitignore | 2 + LICENSE | 2 +- README.md | 17 +- build.gradle.kts | 102 +- codecov.yml | 9 + console-screenshot.png | Bin 0 -> 88329 bytes detekt-config.yml | 45 + docs/changelog.md | 5 + docs/contribution.md | 2 + docs/getting-report.md | 29 + docs/img/build-status.png | Bin 0 -> 224406 bytes docs/img/cache-hit.png | Bin 0 -> 402914 bytes docs/img/configuration-process.png | Bin 0 -> 100625 bytes docs/img/dependency-details.png | Bin 0 -> 289110 bytes docs/img/dependency-resolve-process.png | Bin 0 -> 94871 bytes docs/img/execution-process.png | Bin 0 -> 93412 bytes docs/img/initialization-process.png | Bin 0 -> 98397 bytes docs/img/module-execution-process-1.png | Bin 0 -> 194473 bytes docs/img/module-execution-process-2.png | Bin 0 -> 365292 bytes docs/img/modules-build-heatmap.png | Bin 0 -> 130528 bytes docs/img/modules-crash-count.png | Bin 0 -> 119226 bytes docs/img/modules-dependency-graph.png | Bin 0 -> 196446 bytes docs/img/modules-execution-timeline.png | Bin 0 -> 105376 bytes docs/img/modules-method-count.png | Bin 0 -> 271333 bytes docs/img/modules-source-count.png | Bin 0 -> 271468 bytes docs/img/modules-source-size.png | Bin 0 -> 259069 bytes docs/img/non-cacheable-tasks.png | Bin 0 -> 117948 bytes docs/img/overall-build-process.png | Bin 0 -> 92489 bytes docs/img/parallel-execution-rate.png | Bin 0 -> 82559 bytes docs/img/plugin-logo.png | Bin 0 -> 11458 bytes docs/img/successful-build-rate.png | Bin 0 -> 87974 bytes docs/index.md | 150 + docs/license.md | 21 + docs/privacy-policy.md | 2 + docs/report-bug.md | 4 + docs/request-feature.md | 4 + docs/setup.md | 107 + docs/special-thanks.md | 7 + docs/support.md | 15 + gradle.properties | 12 + gradle/libs.versions.toml | 25 + gradle/wrapper/gradle-wrapper.jar | Bin gradle/wrapper/gradle-wrapper.properties | 2 +- mkdocs.yml | 46 + plugin-logo.png | Bin privacy-policy.md | 4 + settings.gradle.kts | 1 - src/main/kotlin/Mehdi.kt | 5 - .../gradle/ExcludeJacocoGenerated.kt | 40 + .../gradle/IncompatibleVersionException.kt | 34 + .../NotAccessibleGitTerminalException.kt | 28 + .../gradle/analytics/DatabaseConfig.kt | 93 + .../gradle/analytics/GradleAnalyticsPlugin.kt | 108 + .../analytics/GradleAnalyticsPluginConfig.kt | 56 + .../analytics/data/DatabaseRepositoryImp.kt | 254 + .../gradle/analytics/database/Database.kt | 120 + .../analytics/database/DatabaseConnection.kt | 28 + .../analytics/database/LongTextColumnType.kt | 47 + .../database/MySqlDatabaseConnection.kt | 48 + .../database/ResetAutoIncremental.kt | 44 + .../database/SqliteDatabaseConnection.kt | 42 + .../analytics/database/table/MetricTable.kt | 48 + .../database/table/SingleMetricTable.kt | 50 + .../database/table/TemporaryMetricTable.kt | 48 + .../analytics/domain/model/BuildInfo.kt | 184 + .../analytics/domain/model/ChartPoint.kt | 36 + .../analytics/domain/model/Dependency.kt | 70 + .../domain/model/DependencyResolveInfo.kt | 46 + .../gradle/analytics/domain/model/Module.kt | 46 + .../domain/model/ModuleDependency.kt | 39 + .../domain/model/ModulesDependencyGraph.kt | 35 + .../gradle/analytics/domain/model/TaskInfo.kt | 79 + .../analytics/domain/model/TimespanPoint.kt | 48 + .../domain/model/metric/BuildMetric.kt | 103 + .../domain/model/metric/CacheHitMetric.kt | 36 + .../metric/ConfigurationProcessMetric.kt | 36 + .../model/metric/DependencyDetailsMetric.kt | 36 + .../metric/DependencyResolveProcessMetric.kt | 36 + .../model/metric/ExecutionProcessMetric.kt | 36 + .../metric/InitializationProcessMetric.kt | 36 + .../domain/model/metric/ModuleBuildHeatmap.kt | 36 + .../domain/model/metric/ModuleCacheHit.kt | 36 + .../model/metric/ModuleExecutionProcess.kt | 42 + .../domain/model/metric/ModuleMethodCount.kt | 36 + .../domain/model/metric/ModuleSourceCount.kt | 36 + .../domain/model/metric/ModuleTimeline.kt | 52 + .../model/metric/ModulesBuildHeatmapMetric.kt | 35 + .../model/metric/ModulesCrashCountMetric.kt | 45 + .../metric/ModulesDependencyGraphMetric.kt | 36 + .../metric/ModulesExecutionProcessMetric.kt | 34 + .../model/metric/ModulesMethodCountMetric.kt | 35 + .../model/metric/ModulesSourceCountMetric.kt | 35 + .../model/metric/ModulesSourceSizeMetric.kt | 46 + .../model/metric/ModulesTimelineMetric.kt | 40 + .../model/metric/NonCacheableTasksMetric.kt | 42 + .../model/metric/OverallBuildProcessMetric.kt | 36 + .../metric/ParallelExecutionRateMetric.kt | 34 + .../model/metric/SuccessBuildRateMetric.kt | 40 + .../analytics/domain/model/os/HardwareInfo.kt | 31 + .../analytics/domain/model/os/OsInfo.kt | 30 + .../domain/model/report/BuildStatusReport.kt | 59 + .../domain/model/report/CacheHitReport.kt | 43 + .../report/ConfigurationProcessReport.kt | 37 + .../model/report/DependencyDetailsReport.kt | 38 + .../report/DependencyResolveProcessReport.kt | 38 + .../model/report/ExecutionProcessReport.kt | 38 + .../report/InitializationProcessReport.kt | 38 + .../domain/model/report/ModuleBuildHeatmap.kt | 40 + .../domain/model/report/ModuleCacheHit.kt | 42 + .../model/report/ModuleExecutionProcess.kt | 47 + .../domain/model/report/ModuleMethodCount.kt | 40 + .../domain/model/report/ModuleSourceCount.kt | 40 + .../model/report/ModulesBuildHeatmapReport.kt | 35 + .../model/report/ModulesCrashCountReport.kt | 36 + .../report/ModulesDependencyGraphReport.kt | 36 + .../report/ModulesExecutionProcessReport.kt | 35 + .../model/report/ModulesMethodCountReport.kt | 39 + .../model/report/ModulesSourceCountReport.kt | 39 + .../model/report/ModulesSourceSizeReport.kt | 54 + .../model/report/ModulesTimelineReport.kt | 42 + .../model/report/NonCacheableTasksReport.kt | 36 + .../model/report/OverallBuildProcessReport.kt | 38 + .../report/ParallelExecutionRateReport.kt | 35 + .../analytics/domain/model/report/Report.kt | 105 + .../model/report/SuccessBuildRateReport.kt | 38 + .../domain/repository/DatabaseRepository.kt | 48 + .../domain/usecase/GetMetricsUseCase.kt | 43 + .../usecase/GetModulesTimelineUseCase.kt | 47 + .../domain/usecase/SaveMetricUseCase.kt | 126 + .../usecase/SaveTemporaryMetricUseCase.kt | 40 + .../domain/usecase/UpdateMetricPipeline.kt | 29 + .../usecase/UpsertModulesTimelineUseCase.kt | 57 + .../render/CreateBuildStatusReportStage.kt | 151 + .../render/RenderBuildStatusReportStage.kt | 84 + .../create/CreateCacheHitMetricStage.kt | 42 + .../create/CreateCacheHitMetricUseCase.kt | 72 + .../report/CreateCacheHitReportStage.kt | 162 + .../report/RenderCacheHitReportStage.kt | 160 + .../update/UpdateCacheHitMetricStage.kt | 38 + .../update/UpdateCacheHitMetricUseCase.kt | 66 + .../CreateConfigurationProcessMetricStage.kt | 42 + ...CreateConfigurationProcessMetricUseCase.kt | 38 + .../CreateConfigurationProcessReportStage.kt | 68 + .../RenderConfigurationProcessReportStage.kt | 102 + .../UpdateConfigurationProcessMetricStage.kt | 38 + ...UpdateConfigurationProcessMetricUseCase.kt | 66 + .../CreateDependencyDetailsMetricStage.kt | 38 + .../CreateDependencyDetailsMetricUseCase.kt | 39 + .../CreateDependencyDetailsReportStage.kt | 46 + .../RenderDependencyDetailsReportStage.kt | 91 + .../UpdateDependencyDetailsMetricStage.kt | 38 + .../UpdateDependencyDetailsMetricUseCase.kt | 37 + ...eateDependencyResolveProcessMetricStage.kt | 43 + ...teDependencyResolveProcessMetricUseCase.kt | 38 + ...eateDependencyResolveProcessReportStage.kt | 68 + ...nderDependencyResolveProcessReportStage.kt | 102 + ...dateDependencyResolveProcessMetricStage.kt | 38 + ...teDependencyResolveProcessMetricUseCase.kt | 66 + .../CreateExecutionProcessMetricStage.kt | 42 + .../CreateExecutionProcessMetricUseCase.kt | 38 + .../CreateExecutionProcessReportStage.kt | 67 + .../RenderExecutionProcessReportStage.kt | 98 + .../UpdateExecutionProcessMetricStage.kt | 38 + .../UpdateExecutionProcessMetricUseCase.kt | 63 + .../CreateInitializationProcessMetricStage.kt | 42 + ...reateInitializationProcessMetricUseCase.kt | 38 + .../CreateInitializationProcessReportStage.kt | 68 + .../RenderInitializationProcessReportStage.kt | 98 + .../UpdateInitializationProcessMetricStage.kt | 38 + ...pdateInitializationProcessMetricUseCase.kt | 63 + .../CreateModulesBuildHeatmapMetricStage.kt | 38 + .../CreateModulesBuildHeatmapMetricUseCase.kt | 55 + .../CreateModulesBuildHeatmapReportStage.kt | 82 + .../RenderModulesBuildHeatmapReportStage.kt | 86 + .../UpdateModulesBuildHeatmapMetricStage.kt | 38 + .../UpdateModulesBuildHeatmapMetricUseCase.kt | 39 + .../CreateModulesCrashCountMetricStage.kt | 40 + .../CreateModulesCrashCountMetricUseCase.kt | 63 + .../CreateModulesCrashCountReportStage.kt | 65 + .../RenderModulesCrashCountReportStage.kt | 98 + .../UpdateModulesCrashCountMetricStage.kt | 38 + .../UpdateModulesCrashCountMetricUseCase.kt | 61 + ...CreateModulesDependencyGraphMetricStage.kt | 38 + ...eateModulesDependencyGraphMetricUseCase.kt | 39 + ...CreateModulesDependencyGraphReportStage.kt | 42 + ...RenderModulesDependencyGraphReportStage.kt | 87 + ...UpdateModulesDependencyGraphMetricStage.kt | 38 + ...dateModulesDependencyGraphMetricUseCase.kt | 39 + ...reateModulesExecutionProcessMetricStage.kt | 42 + ...ateModulesExecutionProcessMetricUseCase.kt | 69 + ...reateModulesExecutionProcessReportStage.kt | 116 + ...enderModulesExecutionProcessReportStage.kt | 133 + ...pdateModulesExecutionProcessMetricStage.kt | 38 + ...ateModulesExecutionProcessMetricUseCase.kt | 76 + .../CreateModulesMethodCountMetricStage.kt | 38 + .../CreateModulesMethodCountMetricUseCase.kt | 93 + .../CreateModulesMethodCountReportStage.kt | 115 + .../report/RenderModulesMethodCountStage.kt | 107 + .../UpdateModulesMethodCountMetricStage.kt | 38 + .../UpdateModulesMethodCountMetricUseCase.kt | 37 + .../CreateModulesSourceCountMetricStage.kt | 38 + .../CreateModulesSourceCountMetricUseCase.kt | 60 + .../CreateModulesSourceCountReportStage.kt | 114 + .../report/RenderModulesSourceCountStage.kt | 107 + .../UpdateModulesSourceCountMetricStage.kt | 38 + .../UpdateModulesSourceCountMetricUseCase.kt | 37 + .../CreateModulesSourceSizeMetricStage.kt | 38 + .../CreateModulesSourceSizeMetricUseCase.kt | 65 + .../CreateModulesSourceSizeReportStage.kt | 114 + .../RenderModulesSourceSizeReportStage.kt | 107 + .../UpdateModulesSourceSizeMetricStage.kt | 38 + .../UpdateModulesSourceSizeMetricUseCase.kt | 37 + .../CreateModulesTimelineMetricStage.kt | 42 + .../CreateModulesTimelineMetricUseCase.kt | 62 + .../CreateModulesTimelineReportStage.kt | 50 + .../RenderModulesTimelineReportStage.kt | 126 + .../CreateNonCacheableTasksMetricStage.kt | 42 + .../CreateNonCacheableTasksMetricUseCase.kt | 51 + .../CreateNonCacheableTasksReportStage.kt | 60 + .../RenderNonCacheableTasksReportStage.kt | 98 + .../UpdateNonCacheableTasksMetricStage.kt | 38 + .../UpdateNonCacheableTasksMetricUseCase.kt | 54 + .../CreateOverallBuildProcessMetricStage.kt | 42 + .../CreateOverallBuildProcessMetricUseCase.kt | 38 + .../CreateOverallBuildProcessReportStage.kt | 68 + .../RenderOverallBuildProcessReportStage.kt | 98 + .../UpdateOverallBuildProcessMetricStage.kt | 38 + .../UpdateOverallBuildProcessMetricUseCase.kt | 63 + .../CreateParallelExecutionRateMetricStage.kt | 42 + ...reateParallelExecutionRateMetricUseCase.kt | 42 + .../CreateParallelExecutionRateReportStage.kt | 52 + .../RenderParallelExecutionRateReportStage.kt | 88 + .../UpdateParallelExecutionRateMetricStage.kt | 38 + ...pdateParallelExecutionRateMetricUseCase.kt | 45 + .../CreateSuccessBuildRateMetricStage.kt | 40 + .../CreateSuccessBuildRateMetricUseCase.kt | 40 + .../CreateSuccessBuildRateReportStage.kt | 61 + .../RenderSuccessBuildRateReportStage.kt | 87 + .../UpdateSuccessBuildRateMetricStage.kt | 38 + .../UpdateSuccessBuildRateMetricUseCase.kt | 70 + .../reporttask/CreateReportPipeline.kt | 30 + .../reporttask/RenderInitialReportStage.kt | 104 + .../reporttask/RenderReportPipeline.kt | 28 + .../reporttask/ReportAnalyticsInjector.kt | 92 + .../reporttask/ReportAnalyticsLogic.kt | 48 + .../reporttask/ReportAnalyticsLogicImp.kt | 285 + .../reporttask/ReportAnalyticsTask.kt | 162 + .../exception/EmptyMetricsException.kt | 27 + .../exception/InvalidPropertyException.kt | 30 + .../exception/MissingPropertyException.kt | 30 + .../scanner/DependencyGraphGenerator.kt | 61 + .../gradle/analytics/scanner/ScannerUtils.kt | 100 + .../BuildConfigurationService.kt | 70 + .../BuildDependencyResolutionService.kt | 89 + .../execution/BuildExecutionInjector.kt | 353 + .../scanner/execution/BuildExecutionLogic.kt | 68 + .../execution/BuildExecutionLogicImp.kt | 246 + .../execution/BuildExecutionService.kt | 196 + .../scanner/execution/CreateMetricPipeline.kt | 29 + .../BuildInitializationService.kt | 102 + .../github/janbarari/gradle/core/Pipeline.kt | 46 + .../io/github/janbarari/gradle/core/Stage.kt | 30 + .../io/github/janbarari/gradle/core/Triple.kt | 32 + .../github/janbarari/gradle/core/UseCase.kt | 34 + .../janbarari/gradle/core/UseCaseNoInput.kt | 34 + .../janbarari/gradle/core/UseCaseNoOutput.kt | 34 + .../gradle/extension/BuildMetricExtensions.kt | 194 + .../gradle/extension/ChartPointExtensions.kt | 39 + .../gradle/extension/FloatExtensions.kt | 50 + .../gradle/extension/GeneralExtensions.kt | 43 + .../gradle/extension/GradleExtensions.kt | 99 + .../gradle/extension/IntExtensions.kt | 78 + .../gradle/extension/ListExtensions.kt | 142 + .../gradle/extension/LongExtensions.kt | 51 + .../gradle/extension/NullExtensions.kt | 51 + .../gradle/extension/PathExtensions.kt | 57 + .../gradle/extension/ResourceExtensions.kt | 52 + .../gradle/extension/StringExtensions.kt | 59 + .../extension/TimespanChartPointExtensions.kt | 96 + .../janbarari/gradle/utils/ConsolePrinter.kt | 85 + .../janbarari/gradle/utils/DateTimeUtils.kt | 110 + .../janbarari/gradle/utils/FileUtils.kt | 49 + .../janbarari/gradle/utils/GitException.kt | 27 + .../github/janbarari/gradle/utils/GitUtils.kt | 66 + .../janbarari/gradle/utils/HtmlUtils.kt | 47 + .../janbarari/gradle/utils/MathUtils.kt | 88 + .../janbarari/gradle/utils/ProjectUtils.kt | 83 + .../gradle/utils/TerminalCommandException.kt | 27 + .../janbarari/gradle/utils/TerminalUtils.kt | 49 + .../build-status-metric-template.html | 180 + .../resources/cache-hit-metric-template.html | 134 + ...configuration-process-metric-template.html | 70 + .../dependency-details-metric-template.html | 60 + ...dency-resolve-process-metric-template.html | 68 + .../execution-process-metric-template.html | 68 + src/main/resources/index-template.html | 148 + ...nitialization-process-metric-template.html | 70 + .../modules-build-heatmap-template.html | 52 + .../modules-crash-count-metric-template.html | 46 + ...ules-dependency-graph-metric-template.html | 20 + ...les-execution-process-metric-template.html | 72 + .../modules-method-count-metric-template.html | 66 + .../modules-source-count-metric-template.html | 69 + .../modules-source-size-metric-template.html | 67 + .../modules-timeline-metric-template.html | 26 + .../non-cacheable-tasks-metric-template.html | 46 + ...overall-build-process-metric-template.html | 63 + ...rallel-execution-rate-metric-template.html | 59 + src/main/resources/res/chart.js | 11299 ++++++++++++++++ src/main/resources/res/d3.js | 5 + src/main/resources/res/functions.js | 31 + src/main/resources/res/mermaid.js | 3 + src/main/resources/res/nunito.ttf | Bin 0 -> 275644 bytes src/main/resources/res/plugin-logo.png | Bin 0 -> 11458 bytes src/main/resources/res/styles.css | 231 + src/main/resources/res/timeline.js | 686 + .../success-build-rate-metric-template.html | 63 + src/test/kotlin/MehdiTest.kt | 12 - .../gradle/analytics/TemporaryTest.kt | 0 .../analytics/data/DatabaseRepositoryTest.kt | 133 + .../data/database/table/MetricTableTest.kt | 46 + .../table/TemporaryMetricTableTest.kt | 46 + .../analytics/domain/model/BuildInfoTest.kt | 198 + .../domain/model/DependencyResolveInfoTest.kt | 57 + .../analytics/domain/model/TaskInfoTest.kt | 112 + .../metric/BuildMetricJsonAdapterTest.kt | 127 + .../metric/CacheHitMetricJsonAdapterTest.kt | 114 + ...nfigurationProcessMetricJsonAdapterTest.kt | 118 + ...encyResolveProcessMetricJsonAdapterTest.kt | 119 + .../ExecutionProcessMetricJsonAdapterTest.kt | 118 + ...tializationProcessMetricJsonAdapterTest.kt | 118 + .../metric/ModuleCacheHitJsonAdapterTest.kt | 106 + .../ModuleMethodCountJsonAdapterTest.kt | 106 + .../ModuleSourceCountJsonAdapterTest.kt | 106 + ...ModulesMethodCountMetricJsonAdapterTest.kt | 126 + ...ModulesSourceCountMetricJsonAdapterTest.kt | 109 + ...verallBuildProcessMetricJsonAdapterTest.kt | 118 + ...allelExecutionRateMetricJsonAdapterTest.kt | 113 + .../SuccessBuildRateMetricJsonAdapterTest.kt | 117 + .../report/CacheHitReportJsonAdapterTest.kt | 124 + ...nfigurationProcessReportJsonAdapterTest.kt | 111 + ...encyResolveProcessReportJsonAdapterTest.kt | 114 + .../ExecutionProcessReportJsonAdapterTest.kt | 114 + ...tializationProcessReportJsonAdapterTest.kt | 114 + .../report/ModuleCacheHitJsonAdapterTest.kt | 117 + .../ModuleMethodCountJsonAdapterTest.kt | 136 + .../ModuleSourceCountJsonAdapterTest.kt | 136 + ...ModulesMethodCountReportJsonAdapterTest.kt | 120 + ...ModulesSourceCountReportJsonAdapterTest.kt | 122 + ...verallBuildProcessReportJsonAdapterTest.kt | 113 + ...allelExecutionRateReportJsonAdapterTest.kt | 78 + .../model/report/ReportJsonAdapterTest.kt | 115 + .../domain/model/report/ReportTest.kt | 74 + .../SuccessBuildRateReportJsonAdapterTest.kt | 102 + .../create/CreateCacheHitMetricStageTest.kt | 102 + .../create/CreateCacheHitMetricUseCaseTest.kt | 113 + .../report/CreateCacheHitReportStageTest.kt | 188 + .../report/RenderCacheHitReportStageTest.kt | 183 + .../update/UpdateCacheHitMetricStageTest.kt | 65 + .../update/UpdateCacheHitMetricUseCaseTest.kt | 130 + .../reporttask/ReportAnalyticsLogicTest.kt | 108 + .../scanner/BuildConfigurationServiceTest.kt | 34 + .../BuildDependencyResolutionServiceTest.kt | 33 + .../scanner/BuildExecutionLogicTest.kt | 147 + .../scanner/BuildInitializationServiceTest.kt | 49 + .../extension/BuildMetricExtensionsTest.kt | 298 + .../gradle/extension/IntExtensionsTest.kt | 23 + .../gradle/extension/NullExtensionsTest.kt | 64 + .../gradle/extension/StringExtensionsTest.kt | 18 + .../TimespanChartPointExtensionsTest.kt | 80 + .../gradle/utils/DateTimeUtilsTest.kt | 40 + .../janbarari/gradle/utils/GitUtilsTest.kt | 17 + .../janbarari/gradle/utils/MathUtilsTest.kt | 38 + .../gradle/utils/ProjectUtilsTest.kt | 20 + .../gradle/utils/TerminalUtilsTest.kt | 15 + 377 files changed, 34969 insertions(+), 39 deletions(-) create mode 100644 .github/pull_request_template.md create mode 100644 codecov.yml create mode 100644 console-screenshot.png create mode 100644 detekt-config.yml create mode 100644 docs/changelog.md create mode 100644 docs/contribution.md create mode 100644 docs/getting-report.md create mode 100644 docs/img/build-status.png create mode 100644 docs/img/cache-hit.png create mode 100644 docs/img/configuration-process.png create mode 100644 docs/img/dependency-details.png create mode 100644 docs/img/dependency-resolve-process.png create mode 100644 docs/img/execution-process.png create mode 100644 docs/img/initialization-process.png create mode 100644 docs/img/module-execution-process-1.png create mode 100644 docs/img/module-execution-process-2.png create mode 100644 docs/img/modules-build-heatmap.png create mode 100644 docs/img/modules-crash-count.png create mode 100644 docs/img/modules-dependency-graph.png create mode 100644 docs/img/modules-execution-timeline.png create mode 100644 docs/img/modules-method-count.png create mode 100644 docs/img/modules-source-count.png create mode 100644 docs/img/modules-source-size.png create mode 100644 docs/img/non-cacheable-tasks.png create mode 100644 docs/img/overall-build-process.png create mode 100644 docs/img/parallel-execution-rate.png create mode 100755 docs/img/plugin-logo.png create mode 100644 docs/img/successful-build-rate.png create mode 100644 docs/index.md create mode 100644 docs/license.md create mode 100644 docs/privacy-policy.md create mode 100644 docs/report-bug.md create mode 100644 docs/request-feature.md create mode 100644 docs/setup.md create mode 100644 docs/special-thanks.md create mode 100644 docs/support.md create mode 100644 gradle/libs.versions.toml mode change 100644 => 100755 gradle/wrapper/gradle-wrapper.jar create mode 100644 mkdocs.yml mode change 100644 => 100755 plugin-logo.png create mode 100644 privacy-policy.md delete mode 100644 src/main/kotlin/Mehdi.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/ExcludeJacocoGenerated.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/IncompatibleVersionException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/NotAccessibleGitTerminalException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/DatabaseConfig.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPlugin.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPluginConfig.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/data/DatabaseRepositoryImp.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/Database.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/DatabaseConnection.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/LongTextColumnType.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/MySqlDatabaseConnection.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/ResetAutoIncremental.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/SqliteDatabaseConnection.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/MetricTable.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/SingleMetricTable.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/TemporaryMetricTable.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/BuildInfo.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ChartPoint.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Dependency.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/DependencyResolveInfo.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Module.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModuleDependency.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModulesDependencyGraph.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TaskInfo.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TimespanPoint.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/BuildMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/CacheHitMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ConfigurationProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyDetailsMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyResolveProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ExecutionProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/InitializationProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleBuildHeatmap.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleCacheHit.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleExecutionProcess.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleMethodCount.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleSourceCount.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleTimeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesBuildHeatmapMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesCrashCountMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesDependencyGraphMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesExecutionProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesMethodCountMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceCountMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceSizeMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesTimelineMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/NonCacheableTasksMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/OverallBuildProcessMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ParallelExecutionRateMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/SuccessBuildRateMetric.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/HardwareInfo.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/OsInfo.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/BuildStatusReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/CacheHitReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ConfigurationProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyDetailsReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyResolveProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ExecutionProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/InitializationProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleBuildHeatmap.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleCacheHit.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleExecutionProcess.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleMethodCount.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleSourceCount.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesBuildHeatmapReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesCrashCountReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesDependencyGraphReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesExecutionProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesMethodCountReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceCountReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceSizeReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesTimelineReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/NonCacheableTasksReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/OverallBuildProcessReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ParallelExecutionRateReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/Report.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/SuccessBuildRateReport.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/repository/DatabaseRepository.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetMetricsUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetModulesTimelineUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveTemporaryMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpdateMetricPipeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpsertModulesTimelineUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/CreateBuildStatusReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/RenderBuildStatusReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/CreateCacheHitReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/RenderCacheHitReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/CreateConfigurationProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/RenderConfigurationProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/CreateDependencyDetailsReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/RenderDependencyDetailsReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/CreateDependencyResolveProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/RenderDependencyResolveProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/CreateExecutionProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/RenderExecutionProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/CreateInitializationProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/RenderInitializationProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/CreateModulesBuildHeatmapReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/RenderModulesBuildHeatmapReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/CreateModulesCrashCountReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/RenderModulesCrashCountReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/CreateModulesDependencyGraphReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/RenderModulesDependencyGraphReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/CreateModulesExecutionProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/RenderModulesExecutionProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/CreateModulesMethodCountReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/RenderModulesMethodCountStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/CreateModulesSourceCountReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/RenderModulesSourceCountStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/CreateModulesSourceSizeReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/RenderModulesSourceSizeReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/CreateModulesTimelineReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/RenderModulesTimelineReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/CreateNonCacheableTasksReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/RenderNonCacheableTasksReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/CreateOverallBuildProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/RenderOverallBuildProcessReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/CreateParallelExecutionRateReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/RenderParallelExecutionRateReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/CreateSuccessBuildRateReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/RenderSuccessBuildRateReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricUseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/CreateReportPipeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderInitialReportStage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderReportPipeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsInjector.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogic.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogicImp.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsTask.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/EmptyMetricsException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/InvalidPropertyException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/MissingPropertyException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/DependencyGraphGenerator.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/ScannerUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/configuration/BuildConfigurationService.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/dependencyresolution/BuildDependencyResolutionService.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionInjector.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogic.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogicImp.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionService.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/CreateMetricPipeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/initialization/BuildInitializationService.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/Pipeline.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/Stage.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/Triple.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/UseCase.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoInput.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoOutput.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/BuildMetricExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/ChartPointExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/FloatExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/GeneralExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/GradleExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/IntExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/ListExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/LongExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/NullExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/PathExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/ResourceExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/StringExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/extension/TimespanChartPointExtensions.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/ConsolePrinter.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/DateTimeUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/FileUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/GitException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/GitUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/HtmlUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/MathUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/ProjectUtils.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/TerminalCommandException.kt create mode 100644 src/main/kotlin/io/github/janbarari/gradle/utils/TerminalUtils.kt create mode 100644 src/main/resources/build-status-metric-template.html create mode 100644 src/main/resources/cache-hit-metric-template.html create mode 100644 src/main/resources/configuration-process-metric-template.html create mode 100644 src/main/resources/dependency-details-metric-template.html create mode 100644 src/main/resources/dependency-resolve-process-metric-template.html create mode 100644 src/main/resources/execution-process-metric-template.html create mode 100644 src/main/resources/index-template.html create mode 100644 src/main/resources/initialization-process-metric-template.html create mode 100644 src/main/resources/modules-build-heatmap-template.html create mode 100644 src/main/resources/modules-crash-count-metric-template.html create mode 100644 src/main/resources/modules-dependency-graph-metric-template.html create mode 100644 src/main/resources/modules-execution-process-metric-template.html create mode 100644 src/main/resources/modules-method-count-metric-template.html create mode 100644 src/main/resources/modules-source-count-metric-template.html create mode 100644 src/main/resources/modules-source-size-metric-template.html create mode 100644 src/main/resources/modules-timeline-metric-template.html create mode 100644 src/main/resources/non-cacheable-tasks-metric-template.html create mode 100644 src/main/resources/overall-build-process-metric-template.html create mode 100644 src/main/resources/parallel-execution-rate-metric-template.html create mode 100644 src/main/resources/res/chart.js create mode 100644 src/main/resources/res/d3.js create mode 100644 src/main/resources/res/functions.js create mode 100644 src/main/resources/res/mermaid.js create mode 100755 src/main/resources/res/nunito.ttf create mode 100755 src/main/resources/res/plugin-logo.png create mode 100644 src/main/resources/res/styles.css create mode 100644 src/main/resources/res/timeline.js create mode 100644 src/main/resources/success-build-rate-metric-template.html delete mode 100644 src/test/kotlin/MehdiTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/TemporaryTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/data/DatabaseRepositoryTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/data/database/table/MetricTableTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/data/database/table/TemporaryMetricTableTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/BuildInfoTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/DependencyResolveInfoTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/TaskInfoTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/BuildMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/CacheHitMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ConfigurationProcessMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyResolveProcessMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ExecutionProcessMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/InitializationProcessMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleCacheHitJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleMethodCountJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleSourceCountJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesMethodCountMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceCountMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/OverallBuildProcessMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ParallelExecutionRateMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/SuccessBuildRateMetricJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/CacheHitReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ConfigurationProcessReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyResolveProcessReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ExecutionProcessReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/InitializationProcessReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleCacheHitJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleMethodCountJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleSourceCountJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesMethodCountReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceCountReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/OverallBuildProcessReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ParallelExecutionRateReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ReportTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/SuccessBuildRateReportJsonAdapterTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricStageTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricUseCaseTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/CreateCacheHitReportStageTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/RenderCacheHitReportStageTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricStageTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricUseCaseTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogicTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/scanner/BuildConfigurationServiceTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/scanner/BuildDependencyResolutionServiceTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/scanner/BuildExecutionLogicTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/analytics/scanner/BuildInitializationServiceTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/extension/BuildMetricExtensionsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/extension/IntExtensionsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/extension/NullExtensionsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/extension/StringExtensionsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/extension/TimespanChartPointExtensionsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/utils/DateTimeUtilsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/utils/GitUtilsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/utils/MathUtilsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/utils/ProjectUtilsTest.kt create mode 100644 src/test/kotlin/io/github/janbarari/gradle/utils/TerminalUtilsTest.kt diff --git a/.circleci/config.yml b/.circleci/config.yml index 353ee058..22d0f78b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,17 +3,17 @@ orbs: codecov: codecov/codecov@3.2.2 executor: machine jobs: - test: + build: machine: image: ubuntu-2004:202201-02 steps: - checkout - run: name: build - command: ./gradlew test + command: ./gradlew detekt assemble test --info --stacktrace - codecov/upload: file: build/reports/jacoco/test/*.xml workflows: build-workflow: jobs: - - test + - build diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..57630235 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,41 @@ + +> + +### Related Issue + +[Issue-X](https://github.com/janbarari/gradle-analytics-plugin/issues/X) + +### Motivation and Context + + +### Description + + +### Type of change + +- [ ] Feature +- [ ] POC +- [ ] Bug fix +- [ ] Hot fix +- [ ] Optimization +- [ ] Refactor +- [ ] Noref + +### Checklist +- [ ] Are local unit tests passed? +- [ ] Is Detekt passed? +- [ ] Is code coverage affected? +- [ ] Is any new test added? +- [ ] Is CI workflow affected? +- [ ] Is a next refactor needed? + +### How has this been tested? + + + + +### Screenshots + + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2853c74b..4023a549 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .idea/ build/ .DS_Store +temporary-notes.txt +site/ diff --git a/LICENSE b/LICENSE index 748d0618..7316ba37 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Mehdi +Copyright (c) 2022 Mehdi Janbarari (@janbarari) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index b81070e3..60b94852 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,10 @@ plugin logo -# Gradle Analytics Plugin +## Gradle Analytics Plugin [![CircleCI](https://circleci.com/gh/janbarari/gradle-analytics-plugin/tree/develop.svg?style=svg)](https://circleci.com/gh/janbarari/gradle-analytics-plugin/tree/develop) [![codecov](https://codecov.io/gh/janbarari/gradle-analytics-plugin/branch/develop/graph/badge.svg)](https://codecov.io/gh/janbarari/gradle-analytics-plugin) - - - - -Request Feature or Report Bug -
-Hey 👋, Mark this repo in your browser, see you soon ;D +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=janbarari_gradle-analytics-plugin&metric=alert_status)](https://sonarcloud.io/dashboard?id=janbarari_gradle-analytics-plugin) -License ---- -Copyright © 2022 [Janbarari](https://github.com/janbarari) -This project binaries and source code can be used according to the [MIT LICENSE](https://github.com/janbarari/gradle-analytics-plugin/blob/main/LICENSE). +A free Gradle plugin to analyze your project builds. It provides unique visual and text metrics in HTML format. + +### Documentation is at janbarari.github.io/gradle-analytics-plugin diff --git a/build.gradle.kts b/build.gradle.kts index 59feb4b9..b63c636a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,20 +1,63 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +val pluginId: String by project +val pluginDisplayName: String by project +val pluginDescription: String by project +val pluginImplementationClass: String by project +val pluginDeclarationName: String by project +val pluginGroupPackageName: String by project +val pluginVersion: String by project +val pluginWebsite: String by project +val pluginVcsUrl: String by project +val pluginTags: String by project + +@Suppress("DSL_SCOPE_VIOLATION") plugins { - kotlin("jvm") version "1.6.10" + kotlin("jvm") version(libs.versions.kotlin) + alias(libs.plugins.detekt) + `java-gradle-plugin` + `maven-publish` jacoco + kotlin("kapt") version(libs.versions.kotlin) + id("com.gradle.plugin-publish") version "1.0.0-rc-1" } +group = pluginGroupPackageName +version = pluginVersion + repositories { mavenCentral() } dependencies { testImplementation(kotlin("test")) + testImplementation(libs.mockk) + + compileOnly(gradleApi()) + + implementation(kotlin("stdlib-jdk8")) + implementation(libs.sqlite.driver) + implementation(libs.mysql.driver) + implementation(libs.jetbrains.exposed.core) + implementation(libs.jetbrains.exposed.jdbc) + implementation(libs.moshi) + kapt(libs.moshi.codegen) + implementation(libs.commons.io) + implementation(libs.coroutines) + testImplementation(libs.coroutines.test) +} + +tasks.withType().configureEach { + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } } -tasks.withType { - kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8.toString() +plugins.withType().configureEach { + extensions.configure { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } } tasks.test { @@ -28,4 +71,55 @@ tasks.jacocoTestReport { csv.required.set(true) html.required.set(true) } -} \ No newline at end of file +} + +publishing { + publications { + repositories { + mavenLocal() + } + } +} + +pluginBundle { + website = pluginWebsite + vcsUrl = pluginVcsUrl + tags = "$pluginTags".split(",") +} + +gradlePlugin { + plugins { + create(pluginDeclarationName) { + id = pluginId + displayName = pluginDisplayName + description = pluginDescription + implementationClass = pluginImplementationClass + } + } +} + +tasks.wrapper { + distributionType = Wrapper.DistributionType.BIN +} + +tasks.register("publishToLocal") { + doLast { + exec { + commandLine( + "./gradlew", + "detekt", + "build", + "test", + "publishToMavenLocal" + ).args("--info") + } + } +} + +detekt { + config = files("detekt-config.yml") + buildUponDefaultConfig = true + source = files( + "src/main/kotlin" + ) +} diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..73991bcc --- /dev/null +++ b/codecov.yml @@ -0,0 +1,9 @@ +codecov: + require_ci_to_pass: yes + notify: + wait_for_ci: yes + +coverage: + precision: 2 + round: down + range: 65...100 diff --git a/console-screenshot.png b/console-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7cd66ce27eea80acbe9395b715306cae7d3863 GIT binary patch literal 88329 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≤=9-0 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 literal 0 HcmV?d00001 diff --git a/detekt-config.yml b/detekt-config.yml new file mode 100644 index 00000000..e824d42f --- /dev/null +++ b/detekt-config.yml @@ -0,0 +1,45 @@ +complexity: + active: true + TooManyFunctions: + active: true + excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + thresholdInFiles: 50 + thresholdInClasses: 50 + thresholdInInterfaces: 50 + thresholdInObjects: 50 + thresholdInEnums: 50 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + LongParameterList: + active: false + NestedBlockDepth: + active: true + threshold: 6 + LongMethod: + active: true + threshold: 75 + ComplexMethod: + active: true + threshold: 25 + +exceptions: + active: true + SwallowedException: + active: false + TooGenericExceptionCaught: + active: false + +style: + active: true + SerialVersionUIDInSerializableClass: + active: false + MagicNumber: + active: false + ReturnCount: + active: false + FunctionOnlyReturningConstant: + active: false + MaxLineLength: + active: true + maxLineLength: 128 diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..aa9cc0bd --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,5 @@ +# Changelog + +## 1.0.0-beta1 +* Hello World :) + diff --git a/docs/contribution.md b/docs/contribution.md new file mode 100644 index 00000000..d371ef4c --- /dev/null +++ b/docs/contribution.md @@ -0,0 +1,2 @@ +# Contribution +Gradle Analytics Plugin is Open Source and accepts contributions of new members, feel free to submit your PR and stay connected on the PR page and I will be glad to finalize and merge your PR in the upcoming release. diff --git a/docs/getting-report.md b/docs/getting-report.md new file mode 100644 index 00000000..50dfa82f --- /dev/null +++ b/docs/getting-report.md @@ -0,0 +1,29 @@ +# Getting Report +Gradle Analytics Plugin uses daily basis data to generate reports. So you could use the below instructions to generate your build analysis. + +Execute Gradle Task
+```Gradle +./gradlew reportAnalytics --task="REQUESTED_TASK" --branch="BRANCH_NAME" --period="can be like today, s:yyyy/MM/dd,e:yyyy/MM/dd, 1y, 4m, 38d, 3m 06d" +``` + +
+!!! Note "" + + --period Examples
+ + - today - Generates report only for the current day. + - 1d - Generates report from 1 day ago till now. + - 1m 3d - Generates report from 1 month and 3 days ago till now. + - 1y - Generates report from 1 year ago till now. + - s:2022/03/24,e:2022/04/25 - Generates report from `2022/03/24` till `2022/04/25`. + + + Plugin only holds the metrics results in the caching database up to one year. + +
+ +To understand the metrics and report that plugin provides, It is required to understand Gradle basics and how this build +system works.
https://docs.gradle.org/current/userguide/what_is_gradle.html +
+ +
diff --git a/docs/img/build-status.png b/docs/img/build-status.png new file mode 100644 index 0000000000000000000000000000000000000000..3d760e7602634ad258b86b89486918b1179b4d78 GIT binary patch literal 224406 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
UnYA->Q38_Cs31BY;&=8qLM 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%0D|kL%0eHVGdr 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
c7@c3oM8gB$WjR>;Mi}r(n*YV%YDuhW+M= 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�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 z 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 ATL1t6 literal 0 HcmV?d00001 diff --git a/docs/img/cache-hit.png b/docs/img/cache-hit.png new file mode 100644 index 0000000000000000000000000000000000000000..61c699f76c3076993cd2cc1dae8b6b9b125828a3 GIT binary patch literal 402914 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

Ux+nw_n3rMG6xgHv^$x{R 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±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 Dj*2IA literal 0 HcmV?d00001 diff --git a/docs/img/configuration-process.png b/docs/img/configuration-process.png new file mode 100644 index 0000000000000000000000000000000000000000..0a86368c61a2e4de6bad936592ea149f374a83f9 GIT binary patch literal 100625 zcmeFZcT`i`);10ZQl%=0AVs0*Is+?wdb1ina?bnkUN?xXUHy);o;$( zQB%FCjfY3vf`>;yO>!EHU<$wO;o*@LSSc#rQBzc8yW?bUVP#{Eho>46pGbV?o&iJK zIt-E)m_WT8I7PTj7)7fl>r-) z&f>LGT<>Y0%X#hD4&@yW-cz9Id>AJqBwV(~%c?X=k@oCM`=k9NHMx1UeWM;uPfbBF zr5-vMqgX)XRh86FCfjh9wv)=Q6w8m#(78n2kvbBjh#c&zWY#MgZidx6i#Gq?A z2W3AMt9?;?)E^uX)5|W*Neu7RZ-hLqYG=Oh^$CY$=mwX8FjH z_~VFA+8*;%f7?3y%_hln{ND&Z9_=hGEiLEY?~}!gXv->I7}oi!a|W;V9-hm}cQr0g zx)O9ug@K<&?ZH$-rNyOpQ#AzyjitT6m4@kW6IH(C{*vW1_zs@Gpe!ett zg^hb2e_!F#9m2CzTncX7Nm*S)#0q`!351;3WSRT1+B`UKC5+{d5h z6~*9#iz9^T_`+uN%!DeRoM+C8GxY?K&$v2B7@uK%!StPcLu60%$}`hX%_Q!SLnr;h|mitba2QlLAX1 z(ekD97ozX8j#kyJ)fLsN)n3NrMNEhwrZ02o3m)qAQnD1it;pHXjq!~jG!iYd=ZobD zAh;3vKxKo2llo?0e4x;0_RkUuR5KE0fp2eL=dPt~4)&hCH0w1BeJG5UEXfd8&}L7H znNYi%eSLsTTOvQgC1g8zTl2<^Px7CX%n}0bnAIrMe7^gf@;UT*?_=Fkq9l!U#e^6{ zG*y&QJEmiu_v}m3*3cOFj+}z5Z+8T>)9=XgX`d@RC-Ks|m7w)j>*-dOR>ZBFT#vXC z2BdSmbA)o{ZXx1N$A@%sciNa2Z3->iTDaHg9v`Ip_HyNAv&%`Bt#v8$jqiHCd8sdQ zcSm>OJ^j12yA5y0RFvMn&=HMSF;SXSZ@9UdH}fR-I;B9ko`RGDD)UT!{yT}ct#1W% z-s?!c=g#7Ap_2?szhSB+r`)7?BBWt?!8-ZDShAJtpjWPs4niBF&G44tJ>vbe-bv=C zzKtPO#K_zJx9IzHSypc()SdkoDZAB^pBY{k5EDq(D;d64NIdqT^0`~!?!#4?v9z&f z$y&){$%kpSk_@h=U6*U2wN|w$uD#2YOLupqw*$RWc6v|^kKbOqA4Z`pkrjR|ySR|` zHDqYIa5_is;e)5twjTywPkk?8?})N`Wm7%+VaTCfwU@W$Nyy#8{!@=KuMLV1dAxV5 zL#xo;i@hH^#2wBJxjm#Ik-MK;ksJAy*CO3w)MCh@>Z{}8?JbwB)kU!@56D$QbwY22 zq7pvj#OCxl)tO^lR$LO7Gna=3*A1f!@9TN$Rp>PgyPzJR;)lbBi!IN0tG+66R6Yz_ z7mW~Q6ouKcjJ+E>Jyuk1Tj^tMY1UTuzP!#{s{~U9`CwlPpL?*(<}fnj&>Q{Z{A~4D z$q+gvwk)=z2lB6GLu2PX9(;5tAbk(JUG2pHlsX$z?@{>%Vc;ldZ8P3VKSCUWdrwv42m0U z>$#?Q8sth%M%70JWP>A{v`VxRi{IIo+dp5YlRMRPw#l%G9jWjk$asrSYYaKZq5bcS3qB#`V zUbzW5lw_ly$!1c@{mRpyystFdypZSx(Q~4suA@X&;~R$2jk8tpqWtRmji%@7 z-qqa6bMQ2q);g9OqUWPmd%0HRX4J4{`L*|RM&0m8@o42D>{`>_(+~|cgAPPReT6=} z7-?+U$OJMKrccek}KMo zJeyLhMU?*3*3DYhbL?Q-U--cCa__q|6L^G6(Z2Afmfm!7F&{f|=leG}vj?9S|+Y|M&=*0w3ZcwH4ZOCmOX;FPCmGpxj!106QN$mUHywn8r^`-fJ zH46<5yvyJ_2_7N-1w10~4Ili-;xqmAT^XMj@6^w60zAARD?GwK=ish@`xga%aOeE- zc`D`w9x?bIE%@#4fV=1z+Cw&0#Fvj5z#KkxhN!9P!whTtCk7g78n=bxiM(6VIGkiRxfmQ3P<5*q9y zv(-&49qvc_m~nZG2SqE_Il;L-vyQ%jQGTHN}esBW{`N7X)L~5 zvRw(`jKX7QKb%_LZnWRez+Bf|*3^d#xxW9AZZv&(`)<{mR}XTcYOKQunM!lmed!7b zn;#y*-~1xH{eX}Z?N`A&bOR5ckXrsf{`x?`+2Tq4Hyj({>FatY(%QT#H9xLXa7z; zz{Zd|rvLqo@%-h68QP*YOQazrbqu1exNS3iWv} zRwbtDyp6unpNr2FeMdA4W(<8=Am z4ZorkTM-zXYgSi~mMwxp;{&S`lZlIz6tI3o*1ut%-+M66#8#p+{8x1MAyf^MX*Pt1(v9qp=68+Bqz1Aiq7V92?0!u|2kODdaK4!Gu-kBkDdHUK zckg0~b|YlDLb%y|JGc@9dm;S%u~KW*9N3zsc!Vk3#P@J~`h`3E2xXes3qRh%t$u%U z-Pba9gO2-l)VN(;_ml$NJZ928!vui|2ng_)kQ79$K-kmGVh)H}AI&=TvYC`O6lz>} zx4V2$u+@bc^_s!fR@d2!LeTyRb!)Z!6N-9~9PF}Ddhf;LnPScZ*PhfE6iIEL~7%{kF;I?&ypWoSBI;!s#v=(IDWKQ2ysQAfGrO!oC= zk&$uK#l^){Tf!*m={mR7nEou4u4ok&zBU$E0kdNZ4Gn*z&!L;={z9Vp+?R0eyLZiE zw}dTw;+%UVRG>aPL$c1n>k~Ei(mfX$VTJ0DhI0L0=xRq%$f1b!u&RcJhWIFa=}l1Q za$bg@u*FxB#2d(G!|6@6ORg^WZ7TXot!c~4%fIzR`*!l>Z67N7Z?wLsR#5N`zH`L9 z=&Im-jNRYtky;;FCU6<^Q|%haQCC8iA{MIWB4W?+>#4#?(YE829Wh+$kDFhd+1*dM zY8K#gEYkBOl64xn=?jM*o_%%ZSIPLvGXwJ0Mw6({@e8uaKg10#u9_=gzY6!3cg%IC zh^fP!`7o(+`!AU6qG0O{2)*y$1FKmueTr10kDanF_^w);#>Q$&<|B&CyAnELwPZ)F zje4oFl*41j#ti#gW^Jn`E!?d>A2c4Wm7xxxckVnuR8Y$8cWBwr)+0r{icrS=hFT`q z&5oN{kNb)s#?^O@HxrvicAlMVCG~nMH|`YLU#$1MpP?2^6)NBzgCIqtit04!AyAv* zVp4QzY3W9T0>AsDYvNL*=wf$@CEWXs97#wVHGJ(2Zj zNu{!_`iQz24))W}QgcU=y@-QwNw{#;d$WV5i-^Iv@4esHv%|#{`^s^bk?n=9#Bmy0 zO3h&S#wX&<~P=*`w2#NC5LNGC%#g*Ykd1`Ym1Sz$yLTxXA-E3 z3ku>=>}osGeSu|m-Br0bw59FVZhi5f*78!BrGm6}jqAt`F{^hU6cj@s33HKhjR=vT zE&sqhhi{arbdiC3TfK4+;2Sbl?;IUGi=yFB4zxe-b$X|!AGuT2bYz609c@RX^5d9h%aVmpBn;rmc z6=JAj;FN-$`A&}3;fZ+}zGL+FVIQA5Nogw>!+fnjuk)Mkzf607`27Od_MprTWs`FK z>Ym<0EF8r_xUWSr6$!d7I13i$vuTWo9qzQ!|xx#9D_S1m-ZH(*jFEU36J+`zA zf^F{J4$g4=!sxU+Y8lkqe@ezZt z2)1iuL|_Z|IZjSVX%1P*OZR%GrQqF_Ado53o`s4jC~QX})GPnGh{%pwFy=Pz zj}6qLwusexH&(409p{wmj$+gWOBy~Y%Cw3w7OA0CyCCp=b9(fqyaxB~{%~9NV@FR+LHu)P)M_K_}pb%jlV z)je=opMz~#WHj}?*5vq1s^)x`J&5dTNanBVPJ zIAR^=zJ!qXqVAwt9Dj2Kehgr(4R_`*{5txb9OpVk6zc(l?ajfq$sPAoZZRjz86cG+ z;;5%9tP|5XjIDQCA-?^TL9%zwxT^k$h@g~msbyiX>RIpGfAeO7m`TV47GMp5nv@5v zm9(+&1Hbnn#9hW65Xj6Oc6OE+*DV<+DY~*!wC2aV_bVHF2hYNRpZ?^lmxD8p&HY~Z zRDja0;1htRkys@BIBydEiHKnYb9|iDyJ#tQXpsN*t;4M6YB7tA%5NNdmK~rD%R6Jb zU!f@G5)O)XJ-Aw6ls-jjPc@W*Uo%j@$j4sf92B&8>SR%@$tpI47;y*5f~ZMwO%gJH znHFli{-z5!Z961O6)WXI?-{X)2SLd!SJ;p1rjIle1WlgyHUfuqKrwy{@THR+QZKK7 zWiv&{e&J^?qI|<@y0k=e&`f#JR-PdZ4uz|}QO^ddNki+q8Jp3*)StCl0t~r1)0$RV zSa`7K+FIwW3dUqQt|>|b5D(m+Z4E6{TiVYMvrjknTFx=c z111wrdU4kje%@(7ji&?AxLdJ-esfME&VHi$E*TlwN*Q>n3zy~Af7LHP`AdMX@hBw0 ze$Cp+E8tk%7v^4^`Nmbm$so0cdyl||?Z(JpH<}m5r;jUF`Q9tug>Uz(fRH3|BygrB zgl+-&v0?R&WD)E6PsFU{sMgk2r-gX^&OP+ps^fe8V#(!H2L^yh1CB8Dia}`$i#uR!?EnmI0rNl%M3WyMHl2*Gk%zzd-nsRZyc_;2Ea3SQ z0=}*$FptWsb-Or;yUc3;7}_2s!uz%5=-CStMP{a}8Lb??NT%zIrq3w`di zvt~j(db4TN@Z){t0*HjlD%!id<3R|~gm^*>R!uq&)ihkVS@&;v&rfPV!Oc7 zej?IM4Cri}KNVXgOjJ$ME?e5Gs4}!us7Y>&%e$bmWuLgKzh=D%5ON&Ble< zixjm`)Zc2cE0%I)9rh;h<(xztE#pG{C;cewpxjZc_kNdYWwRkFb*c7=f^qEp7{~oY zK!N($1Iv=qK>>gu5@BPGqdpNG>+0Cqo1&n9)0$;-~Z=|ZwI zbLHa2i?~>WZW#m}WzCgAMOmck8o7xH37v26W+|l59cThfvx5Mvj(_mP5-~K?u{K$^ z8Y#H#+11`2?2$R0fe3zX!SO2(VWY-{MUDXrrN0_vl!yN@?Q94{?ZeuAw{f`Y@O*QC zZoc0T&Xsn4IGxD!Yg`UM$%98;VM0p1DDYQ+Qp2HE#%b`2RUcA( zOJPF2`xN35yYI&Uk>Awmqb^uYQ6=+&@-GnXFALP^Fv_FUKd_o7%&~z4ofphAXwtjPJ#VeN{~0kMNmPBfgaw* z4fU5v9U&rA#-V|G_~gUCS_>Y&KA2ZG<`l>D>$(rfR;H)jnT+ab&R_eSf^vwjCfS&8 zdp-n>AGh=m#HG8$CB$z2+r$6AzO1}9-7E;N zOMQ>L_yh#vN$I#-jHgZN+|*oME5ew>G+%~>nuF}qDQMZ7H#gi?M%Wn{8MUEML11d9 zSc;|UYHJ^3)+V)ebhn=C?{K90vJr;0!q&FCMcE~ftvJ~3wK*`T21mnw=#6CjFzo#EO;GFV;9Br+&bg< zoSM&wjqKnkA#et^w9wv~*_Zq_R89@UrRH7p`FZK3ZB|;28s$L=T00a!+TC z*5lLC1YBKRH$moY#0=q@2i5BO_qdAn<;MhV$><7rnecH^bTDIyuwI?#oeWfyp#Y=TyaM1RW>^CXwXL3j!otAV7LZVmpu%Ldk zlizJT&3(!WNrIpn>#8p;)du9}F?zPOVUYqcwVeDI0iEBbU2p9m{#%P>%O@ZO{-1e5 za>b)JCpY&CcMMK=5+4&GrglN12=*Q-=!FXx=CdMYOH+_NY5WET2DkvAJ;lD!3VDEw zc1A6G*5AE*=U~4H0$fu~nH?Re-fHf8SBb-wvQ^`mUB$=~X%KUlK5Qj}H3YHxR=2U} z{gzSt_xcvY74;#|Bb)5$rpM4bU7^&#y@fNB}LRWCWMZsvs-L>!m`PZ#6%w!X${#t!z9|S1wXh4TM8-HIqK07*bR94^pZ;5U;rX|ai6>F7FD*rZ1nJjXCLkfVITOU%2@+*FH8m0i zd0T!b<4s2?%uem>GqxZ#+@PbcKRz?$`f5itbXRm5q-oNOjDtK7(4{dZlf=69Mx$G| zZXKlV9v`lU?usLndLaCH>Wx{6$e9 z7c>s&j}a0}xpN%hGSGmT;!hE?Pgowz>!R}AIORDPF7{KygN^~!i3M2@**qVRu5q(- zoOA?c(H_Tl@Bc*_(;!a|vP&{%`2hh0`)lq^{DZj~bgME&TY+*%+k{9aW$nur33iaLf zX;v$S@xK?wG}&1O26au%2>ULC=_i6{YQ+5Bt80(EhR`5)5N(;^Gi-M_g=yq*M)q9P zR=}#r9YouVR|-6&Lbrx8sGFIY6(24IMamuDFUM31p4y>~*|Tt;Y zy?tUAq-nxV7No@Hami7cM%U^cV1Hw~ymEWYN8VimRjNu#N-YvCA_h=H!!cwzNH1uy zcrCHl$v~Zhi$QK33ZJU?^jYf#`n)9Y!5OJpXZAUew84FY6rb>bgc{mSx1-d(Sb^CbN12s_BF`4yu(d%ntEGbuOt9=to1}A)fTrFKMsZ|1 zyCQ~%J3*@M+#2cBR)2p@3#4vEsBU?stTzGY>;4hktcb4mr=_P)ZJiyhb1$Co-s*N6 z2QbWoqvPKI(RD?bSXK#ugmI4qG8Kwk3IZs0U$4-R%gV~it)Um6#Re4G@Gm8*GU6vT z#ofz|e*4y*FqmQbIuVhhyq|~T>uBE0|8W3agI6-Ubvo0dk(LeWJ;Z$W3z9&vEwl`z zhggk~q=*F`x&4rfWsOMZ0cT1ye{sEbg!HCrfA%Ivr1V27a;^?o`WA@CI$xgSU&+O} z;Lgs@mD(P1sID$oQc{xBv=3${`3khH3t=|kx(t!9cmJ}-N;`Xvz{%?tX*D({Rr`#R zxevR1{az*`Zy*OjODM+~rECB5z$t>3m#4yS()e(IQ*!xugHPd>yG}QY3tz8`ijK8? z_a|nFT3NBFYkbs3S+mt6wd$p&7P87E>x=amZGt!9DtNo65pQ~3rzhQ~Z6mF%t?3$| z*4FP=yM1P!Gjv{SW9Ar3!R{bT6Ork#9+tci2aVvLZa5ILoVtL_fH%e^CWcbx9d8e6 zsW0L8v5$%Hu|z%(^pMu6vA9E|aIJ%R_J*z5kA)mO^lT0{f~*z~O}kB>>kB2LhCrV> z6}|@cdBfi92l5{iO7Ti)=ZACbpx^*B)Tx1uyqX!(s1C3gMfxY%Z@UZUP4c4#n9E72Z)IIgXub9Rcw(4fjL z4UnUz=pR3R^l={+scitxdH>SR<)Q3)%E3mLc_l2Sn2et;xd*Ctn|GMZ+H_?Fax}bDrYMZth9Ld_4Q+VHYj#dHm*kw=n#A? zAZ8ChC>qXmSK)*N$XiV#n5u%56=WRtzdxf|!A>5fWyv&G*^FM=-`^K&zR)VM$^0H=o?DjO$p&47DP^1#~iQX)U|-1qZPyDDDgYzVNXcAwWffG9YT@R_sJ zUlZ>5-B)81t#X2b35}%r@&q^-pXO=NFSyTMX4#vNnwm-|ntx)aq%Z-uRS3cIf8R_j zh3oPe+yPg5U3q2aWe~6+D%~PR9RSO31=Jfr-m|_%G2Z&LuAc|#(=KgDF;VcjVx<~r z6gY#eO3-!7@Z*99+DBmm^~Gt&>yK`LGzy%;$Ii6M+%p18Ufs>x?I)#%^m{tGJOw+D zKY9F3RubGm5)z?l3qC8xGsdV){O&W>o>RFbU%x@YcGU%l=Xu~>-?&7+N({BuWjQhT z+rVd-x4q@F!y^n%#Jhe;SM?PhI_BzAyR&%U8hGKV=V-a*>p8=cnTP-wlge{wKMy3K z<|j2<1F2nf?3!B+PG#Su$|BK zGQ%Zmd~qTQ`w{)n1Q@8QR}Z*f3{wTn9P9Vq@- z@c9d}(Rn})*`gRH6Pz3nt9(r`px!WB<&an&@YucSQgs{~V{NecSeY}WUMMJEXLnRq zUVKM19ofPM$LDK00Wp`N9^fB0a-L5emjEauKIwf{)*lcTf|8o}EpV+Z4OJpq-tSKJ zAhiGfjJB%~Bpx!`YVx^(mN>nuIJcwG2$qQzeNDIqxW!ueIWCR*kDY}>o8M2oub?pB zRO5|yc1%J4N=m$z23jZ0h4UBoUQ)=Q%Kz=S)O1iQ{;FSn5 zi}a}Jg6rxUrF&7S0KH{rmrbSD`YgfO66@C^kai9j_Naji*;)YrGMmA>8=T-d)#Q;0 zjSM5Y<5x}&mV~TUmts<*Ik?;(-^dWEs;ao-G43>cZ33|K$~Y$s8W!co5Q_bHtGV)~mZ;cHb9 z$!G1~zAHV1i2KIGF)XNQTGY;4=-<_sdj!vzI6eR zPeDLx#$})f@5-<5Y%2hTR*1IFe)*3D#{Jy_F=_JVitktQt)nM%6ESNSwx9?bS(NBj zO{G%unB)uN#k-H%)Bu0=YZDtD4h+&_UHUjtK*1QBVNN?g%6%jKB9!&sYt*7SE%E^R zDn+8td?d(Em;meJn48c0mJ0AI*6RdH4hnwv9W#@7v$eoL#&yD02Zf*ex7NbJjg#Yx z%vX)nxb0)`JA3J0&5K7#K6Z+Ay(kg9a$z%TMECs-r-ur{SF1BFAzd)*RvV>PVM4C5 zl*_?uVoJ21bga0X%ZjRmjqwePwT(aX)8Rqou=BI$#3}IMBpaCDfd1d(I$$W985!*H zet~;Yuf$34aWE^S5iFkx%>QPnvs@wo^h6_wNN3|XXPpSTL6hz~?1#psdd+tijOL*G zVFg$Ccv*y(d<>0}bMkX7`sNsC*BbcrDT;8&^vU+z(?xv% zb;SaTHCSL~dnLNsRktPWF|{(>`wj1<_6t!J7Cq~auW;OsT(fVQ28uH5+k;178JRJc6Y%h}>HcJ*vmB7q>B?~pc5fe5%aQkN}liAW%($Qv~i zQA8IEr5-N~U-pC>X}D8u$ebDIOHQ44hd=LOk})iGb~+rltwOB6kLz(ei92){boO3r zxs+5$y198*+b~M_!TxB7d_8Vae{iu`uHeF3X~3}+{OZ_>J#f?nBzVy`TV`;rW`3Pq zr*IqR^nmI4%Y8jy7PfaNL1w4liB;Gg_|>qNAGg1+ZT(jR}73+ z$kk7y;`6yURG_uyi+6=qQ)w||m2!15jvZ|Egsp^f>S+)er^JByW+z1I0M$y6d+4_PJk=)OPS zJ?bkVib)s!yaiLL{SH5Rl!A3^)f%a1?#r0Dq(fF*NcP0!CU})Rxfx|2 zy@Yg@=M}Z~v>rDm#U3@Ria0VR9JiBZ*#vk`%|ARWlIb*{KK~MUvlp2y*GOD|HcOL| zP-p-ynM|j`{+ghLyceH9k>MxJplV2q_2MK&XKy+?x8aC}TUhe!>A$!l@Vlg0ZoA5> zX(rtJCgxrN`eU4XmG4f;_9uC4LSmpFKGVP3;VfamLp%{_Hmn0M*9%5{~XqlS; z2$A8chV3K3_a1J|t$d^XlMogB4Iw(;H;6Kle7tWFi#Pqm>sd^QueH`shN|9M%4Ycr< zh**61U4SPveds}V9kGsa?)^fUPZcU2Mk@NZMUoALv?GLMo=09++sNXf?+EO#xn|O9 z&qI6-Dyl0wMz~*RVdvp9B-(bYNRo!}IsW!gVk(UA>U6!6(BRQ9T{$kx#Br)1|V#! z+2Mu#!4r5+e0Oq@7^V!JP9_wl6NTcxiA-Zzi?Q&+hkw~7fnK!@V-~Ja&3zT<5taD5 zO+C+(UN328Xj)jNP2a9i2sLy~EU!nZNahPN#q#m-H(JKDM8++V8b2oR(msQjp}%%5 zh_$K*wBv+F!6HkI{0{3l!N51eIFV5hb*TSeWiXH72-I+4?Bb#YXj87t&cmFLAHH~T zdbH$G(BsFCRXsgx=I7@r3||x#363_vs&sU9JE|S$va_=}*%c?Esaead#PR$;;HbyU ztq%e60U!t>yy2W84@kEElP~PL4@Y0z^7NU6#!^i4>xLI9O7aZcNLuEwdFcFUn>Ln$ zm19nY=skl+wq#Icj$!@EJ6q8Z$5`g+OvM8Ijxr1o_83v(B$y<9d2D`_rf2EDRgj zug0H6_*6~%)`3DBk4y0U;^G)|>CKsc)bqCcw?K19daTnYJaVAc%-=2EJe38;;Qa^1 zYYBy&$Z_OHE)Nf=AfhxxfT-2&l>+wBFi&mApY{(2L3iy82?uW~25 zr-g}+aywtWm_oc~5zcSly?~Htqhiu`_^wJ}$|Jd(gjXhf%l=;`ue};s$z61z0>a9HcODB`-3$o5VaV<6~paZ;sTsS6jgVR+F|`D3(VL(SG79p9jeE19ptIBn@-%kTtWV`>|jOMBikq*ntJX`d+cd3!}^-si*UBx$7YgK(*JR zmWU*hxbf}00#euucN)aytgBl|=RI50=Pf2}U+94%hZNKM`ND8mPQ~0usxpp@Ya7EH zJYg|(xrv>YR08Z0vRC7aF|>bVx9I$R&J=ETOr18U@eR6tK22cD@^(z=+2ofkJl*ow zm}$S;hbo3E-HjClLTVu8^;5)|`)68Qw%=(;S6|6S543-%Ckn>n8jNuXxfBls)5TQk z_0fOUDD^$leRd5zK~vO9C9dX1RbhhwosGZPb&ZHx&lx~(ix zoD>b!XeA~*eHM^V&yO!l=={Zj0c495Ln&s?MjuSCy> zAJO61+ISDNb=Mt1Ig*tk>jYv`10J}ket({L+ik%Fe$90Dpooj3maI(Fs;>CQmDvY$ z@<&-9`;*x}JEDUl3$zKKHd^gEf=*Z0&X@@$pX3zAQp0Xxygog^__@fraR_z@muTVlaKhjU&WjQ;AD&%jX;p|F?xjz5E%B5Hw~zbBYXRT>yV3jJ{jMxSDaaG@r@X`OD-$baFhNOBCtPS zBGO0hdgH|H`n^&E-Z&~k=&?iM1ZKd{>M1IU#v;3IJB&gNkxwNhnLT(rvHE0inW|XY z`~`N)G1mLe!y!IafufVuW82>A6~+KED>+fKyEv>Y zj!boaJoEXv6L_6wWE?2b$-h)@ne$bhK&SP%L^}ZP-AmIS%${Ml^W-Yppw8VQLXWhum4p}Hf{8-k=`A7v^(-w zMH%x~MHx}*(Exgk4C7ElKMQPZRphQ)c|eDH-QMUN17e096_io0@YQNi3s|pI%vvw7 zTC1^EMa^{^XY*W?)ziG*oQc{PywVKz^@TlR>ubWUrYG!PPMWhZECR(m-)yp3DsqO@1}f^hgy!Ytu#;e0dC)WT@jyV zL&2{}0LtqWt^=%7J0~YU4=~QQ&_PnPfKg?;3})id_y(@T8<&tUwgbA&{wjul+r#x@ zg9?a2u2zPi+}Rd9bg>80=q zFFSc48|N%;@c@6;{6WUd%Fujtn*9W2A(T(*1v)FT&qrm!;-x0hhX)7e4IaGEhg{Dv zi1{;h+s55DFvaECU8s#1V3*uc^ihXlU}gI@xxR0OGh9tg%8F2R`!>*v8I-QFBa2&F+|RZ(lB z{%}*AGk^()}59IHm~ zYE-aH3j+jt<@xjHGWO;Ox#PV@{Zn(b6yFrR5k)4M&dg^l`^_d?K}~1EK@-VLs0|V> zYWa(~rPqKE{;0{~)N0K<#d@Kz+jVnyxb`i1_7)%HmGmuH;T-uzt(C(jR8}J!&mYx# zy2Oj?>rdk_?xOAQF7A{T=DLnxc-woTYUq?Z>lKy9Faaz6FmuX7<ST3l}Z6eLc* zV*NDnT`uLQWz3Xr_~OxEukNBx#%R&HwI52jaxSnvxraKTuRt%$Qzt zZZp}&tLmL9=1CYEKGrk=y06H)5{!;bVq)?St^!v{!QJ9ZNC`{=_ZBJ`2~PyCwS~G} zcC&R9Vn4<;$be>GXY0bP7Yqyx7$?*6C(%a*>#^J#F;})i2g1TA#^;QX)VOzZ7C^hZ zU9qzQ>$caqbLVJ~)aw#gU`rl8@bw1F{F@+_(v;K5im8DfS|Yo&P65(Ti)Ugk%{Z72NZG> zw0==6+<|>fY{HsLU?!ZouFLI>lssA}s#|;M(a7Cd_tjYWjpr9w57lwQx{uakPue)L zzUg?Ucr#D#sKajEJ{>K~qg3P1KA1%~w-HD0;5iZzXD5C+1D7Aw{_*-wi$GWN#~rB=6;5N2kx*F;6rX?&EUqRMaxnEk7<+Z0^3eB~^bg zHrXHfj{0%{2GBN@5a3H>jL4lN2XHom!p3)mrz3tin9cAv>!i}fETW;gQ zV_8x%4VVpk7-p?vD+YxRy6e(Y-Nvl6_4Ro`drF#&C60uE#*UGl^b=C9-5vOAl$SI; zDCyo=NWOuq{7AgDRcOG1h+?nGmN)4HM5iqk9VbTm?2zJ7ffIWZO!B~sFFskRmrn3NYY(PaFH_x4@X_Y8PbS>2m1)+BKw75E@9D&z&(O1potJD9 zRJQ@TYvX%E2Bu|FX7kP_Cj8t^sY&cq2KOh-E6)ZKQozkyJWKp zQ3UC|0=sv*?!d^EMBvCPVWBTjY z+cn??UQQk!9`AHYs@KigD5r0CRXRW)AIlW-|M2yeVO2)awy@wv!6FrqZcqW~?v`$p zl9Wa|Hr*vC-HkLzNN+&8ySux)`PSBR?z#7T&pH0_2V30lyVja>%sIyxYxN17vs|qL zT7`ECFPx|4`0fEvy)(u9umWl#ih6U!=^0S=>@)H-IdqHFnq<_(-8I($-U#`{Iw~IC zXf-}Q5%?SsqHEfXR+u;qlef=b=ogz!jD!*(NI|AA_BuszT+;>EvFH>hu924- zv0p0AC$gtc*>Cr7%m(*=THahqCp7kTbw|{B30_-5dHSDHG}}$n-!&}j&t;}3*OC>n zRoIJz(U;Ol0?F#Ox_&Y4r~1+~kvBVN$FtKWQlz|-!Jm4m@lK7sTrzu@xAmT)-az$B zyW4MX=^N)?-B*JD7*MkQ14)CT!zBf+0dQ2aN=mNp1>mJAIT!RmJ4G8n=d;{u&`>Zq zTIpP*$|)?AK5+)(W&5fupbnA?DW7t z`rE0Q6R(N#}$417%e?A$&|lYQ08vk4yv`>?)H_ZSL2V>x*HO-h{KKC4#<(6Fg+2H%~gya>d5Q>d-@_5C>{kL=!+ugK=!n}{KKTX4` zl$FM*`}(7sd&SwsVv|>x+8n65+u!?&DEZ~uzIRvue};j1+Q@WPiP zU{@gN|8RU7K%}*tUZ#!k*_QFy54vi)Uq2|Z?)qVHMW)jXgp!pc2iFX-nfAlJjWC}K4m_9-A__oI7y-S7iSSbTzcH2`F9P*UH0UAL?gM32WI;heK>O*;gf{Bo z00X?c2CdyExB*7DWTsZuRQ_Ly4=|26;}pYO<~*tCqc7S%`~(OJlF{3b z9gYr7pI;EwLS;EtZ(+OKhSJT z(RVno?ngNEi7;1TA z>$b1?dzOGLT$wY;yS9#6mNI@*uuFOgs%w>e%dKO3{%fuCjVkHh_SHN#fxT-jF2_Pf z((j|gJ?Bd!)xwrzry>JceNTiwr?A#ZN<{#>HHMdyNxKi?TML&5NZ(_C6w z55D_AOdWTsfg|;&uikwRrmLYo8?!!nLf%4P&K{J6^_QoF*e0zAX3i3uYuQKg0G`Wx z#Wl0V&RNsP%`Heu6(1Nudud};bfMlrEBERg9NF_JGinM8lkG?cR^_f~JSl6JVP2+o zi*7lY?eo~fpY2<960?Ev)s#9JDT-DkS~r7RT&D3-OSOY1H+wQ3mdt?%z4CVf-QDpU z18eaIye;JQs5D(sLcE&eD-Lh&`QHT`rZ*S6*VW35?d36{9C6kXZl9aF_os(eWhj0! zvUUl@Ez$eX*>U&6pmrHd9A363_$*xma@e8OvK;d~%0Eiu_V-O7^|A(yg^nt#TrM$U z6s!4G9;BlZcuSJkFv|!5blniAekr{LjDhZfkE&)xTQWZGXtOs99C4c!Y!}8q*{Uep z)n?$$IrG}I=(^r#*VkvF5%_Gdwt0rmLp3OSC{Pvkx#tVrn#hXo4#vKDdKf+tJ+_i@ zb}<(70%|ee>l}>xhzB>AvX14DXOI$BJI;boB$QZo@=`p?F_$@G+X&SW*2Cz|%>iZM()fFgIG|Y**cK?eW2@2HW6Vx3r4dd$V9@WGfvmQYOV1=rQnXgL9oG_!^7= zuFY|zpWCV#O9z?mY@_N{?3jkEodmS|IfwPfu}^^!$~>lkWI~+aJC<(`e@e0@8(%!mlRK|(~;i@x;Y#SpdeRt0=_YisQu|d3(1z6Q% z)^+_OhrZx5VlC&lMQr!erdgMLqvLOmO^i;@s#D}ujKp>Zh^RIHGD<=IN6P0$; zRh}0KL^2d9#WoG}B-C>Pt^((*x&|2K+O{uUs?fEYp-FB}oPId7A>qtPIeMCA9}JV; zn{Bc$-Y{ZiEQYe4Wzjr*o^lh`To?X(BL|6dV_*uX zo~J)r@wy*#Wpb@OSS-Pq_JqqJR3fyWMZ)^kJ(#uJnd5y};{!qRKS-8vM&0?o&1k+p zc?;C)0KpRhj)e(->Fx*zW3+ zcNYfB>pVM{yV|UE+uPVW+L904;+(>>2Vs_g67++el4LK@1^#R>8F zW&3*UisQM%zLB45SdsCP8*>SUgRTV{F~EcT-z1cm;LS@g-MC&}?0pVeJJeM3a~QE_x)Yct6%z)pGypC`A2+$<=Qov(X%8|qY|6dd!j zLWU{E0cKWYR&L|GT{oA|Q#0Pr&uktUmu%?If!cdmcnsanrw&_8%dnDaDFL%Tt%Nq4 zfYX74tz$~;PKJo!hb+H+$9KO6Y@@#olv^VdfFF#Z@DVcfzgzH7n45%f#@naraexM? z0h}cu6DOLUUJpLyGK_`Qg5aqXg1rl?UU|s$?rJN^-lEGW-gxXn@G_fYl@)hSLAKXu ztE1%hX{K)7N%5cLKM+9KtBqJrknXo)+OO(E*gZ{$xrDLuwA&HRkhO)C3aLX~!xlA) zP4C^DuA8M5!c%DcrQ_HWB`=QfrJX^Cma*7y(%6r!a^KK3IL<=P!Q4inyP!EycK8z3 zTQ@h{wibNnxb&UW*@f!2e0mj!yLNix>!!5)-VVO}-h(a9EZ_Pq^}0B34KY=A`y-se zm5Y+KEUWf#HNZ$LnVaba{M**uvy79#mmpgL`RUn5+_PEn0Mvv~Ohq~Px?-8pTpVNxk^&=4}EUn<9}8NzklHvHspmL zal&eD=Esr3X`iW?ViCR&w|V!Q;FsV|IiL{+&U?dqt7(vGxBD&bm8%Q_`d0*>G%;5| zz+>f;(cQD6mwH_LsDv>V?HZk(7)X46eSYrw2lAKL;{Cfw_ACPJTtZ0h8P#9P2x6?@ zBhbr3QL<5pV}F_{SZBuCxgVpFK)Co*^`hP{4OKf)2SbvRtqKgpc;0_R6ZdsYi^3$6 z({oEbMrE46_`py1FsvbXqaLw3Eal~rCy`^K@SD0nfn=QJ$4z55 zQTP0~vX5m#@(&WtBm#^sE@@VjnS7Zfn)ZYi`Sh3<5xb$WJFF6x2{)_~`(1v~!q}#b z*T&OEc+w@XdeoZ^5Z0C`O7;0a&I)|(kfgv!yz(Z({?Rx^Ia&* zyj6QFxl;))iFYd$h-{#WMK~H@y{pV6d+Yu&XQ21oEvrFr|FtfWhi~AGUH$|glgs~t z91sqza<-o@f{S>XSa2Cf49s*w6It_nKq2bc?8Prm+;NDJN4DRIo|9wx!=W-hIas~- zeZyLZJ6(H` z%fiPzusb_Fl{Iy;F-ADwnb-~`X4@Ss=Gm~DSPc}Zwhq8W)aKj%wVn~T4kfN>++E(6 zJc>Wb(6n2tt-NlR*pHiAeqLCDTAZBp!!Tm0J)WaIj6o=$h_#5=>E*MDq`)W-7V6Q! ze9&i9)uJPO|CiZVMTSa-VkP!ENcRfxROt=0A1DMwf|^7juR7N(1kMs^D4y2CSgbYJ zyn4v<(!YthtUykN4fclxSIcNEKp!w9J&D`8|JbdR@j=QTUv3eM+P}~s*mCF%oyvSA zwcbmhhq2sxImwz^$kWGCosW?S2XDMMR z`u^|sHfHG8?lUvWx?hwOH5d46nG+-}`Zy#>J3CM{uq@6_4ZhrbRX_VvVoxaOs5hT$ z(;Rc5wHgJlYp(J=*1LCr%=TVHL3K-=b0=~6Z7(umJic~qZC}I@z6HioyEJ$w36SbD z;&J%^H9so;f@l5T$`nBBU!vDOd#o8Q)&fzbxEIsy72w}T*a-Q@Bt&9n}7aLQA1!SEIO$GH^V$ z<>GqUWLKlAM$6J!?Ao}K{!J-Q^YvRr)tJpu&1%)NgmYrLS&4ma8j$KJ8>Nda6CSW_ zze9cooUvm5_=J~f`zvZ2i|(scXSIbc$?J(G1=!KBWLV*U@mHoVm9QrG;cc*i*wQsn z$c}-q?4O$bRLP4&FS-sl~o*hi>VYT_zTYK>fqs z5O8hm3c*?)^9-~<-r(NhEOxliT)#AQeoj;wizl+YAACQZn*}dv6=su&*@Oz*cLesW zZs#-FrMC81+zN0%-F{{Adeq$rzIr3?jz}t)01hd7+d&@vW80(7RMbyO3eK=e3kcx< zw90C;s#E4|Yp$7EJ0ucM?oZW5#xvZJJ-eDnt8F-L8Ht0|32j5WWd(_u^+p zENYWvwp&qiKD|_kpS}~^6&yn&E(jmJ$$lmQh|EH|N23BMN+aF13DRCJ36!1r zS%coy?YN&@4=5>B9dV&VrM z@^~GQ*P_|@+tI22CSzGL-(hlbkSiU>e!LHr7h0Fd3-!WU(QlcJ!hrF>68lGj_Ti;G(Oef8C$FTe zW!coslh|(}4BYq9=imtrQHum;mL0&N3~<*8r|_Ykb@rh%;= zNP$rubY>#N;UIAQV@v-%B4QSb^X7o2T}zq9&-)5=j3(O)uxJ61QIa1o+N4#aG0O4s z8W6P6>(!%+iUYb9eKsj5QFygtiMZdezSt83Ki|y0FcVFUflp&|&5VAyJ~v-H2ZWH) z%KFjJx{}KJ*1F0M=En;*QDHa?f}&w>x9x7liC&xJWx}#phKh13vf{3dy=n*QYUax_ z2W}>4$}Q%Pd+zY1y-bI=)JvJf?Zte1{-C^E*q0QnUUn-BvmXT^(s0k}Sg6lE_T0#= z1vmFAXZcl0MEgW_dsxCJ@?puRqy*6z(*aSDMuu-Te}EShvks$MM-6kho;jynmcs?vb)gk%i~i)vnCn5d2m; zT_Zc&=sk>Bos&~!eaPHmJ96xd&S@=)mNhLoDTUq%>9*f}dTfgH+vsRTK?;{yK}b*E zcQEx2Cp?Uz+@##pj7>N+9-1bv>l$(bnJsO)sWS4F2r35n z=6*uKz}*OIyD%*AJ!lwx(#2e{p$ZK>wU$YeEnpwjz+&wLs~3*vG0jEs7dtzw$dmog zMNVVbVLA*WreKm*l6Qh4Ap^(S+NVT~{fk#3L$*dJC;9I?tM_f~9>f0B3+;}$x`Q0g zJgZPPP^0OtXRV>PGfje>o!$F3#b*^N#(9NNMSU{WCr|x5$6rZp!o}v|24Giaif(U* z1>WiSDQTDF4%I^$%CA-!F0E%kH_syPjF^awBhJ{fja&tBwoa)}4**0xIXY~k|6DD~ z|82E`Vosr3V6+Qj2mTNmEG=){(4eC!qpdscr`ScBo}vSC=l93^hnNS7buGow8n~Vt zNN#1e8QgbmkD$7SGNJnV1`^JqKP5aI#J`C7mjjupE2tQH`|F*hPS_TnK@jOc?Dk;$ z$~UTBmeKYsSBtirO|=U;osRdMW{4vAxXirxaJd&*qCK9xx=)C(+*b|dQ?NpcBWUX! zj;u}z{L4dJN6h~Vzjndj@ngMH%Da!S?la`DpPW}=ZeLAL_CE;f<`ndZ<}u2l zfXBo)epGnF3aaF-48Z{8O>&>O1c)$k+~LuYKP8HVpQt-j&p;_2Q*?bwXOIP5i;Cwk@ch5UVmZHSm;Xj?PztbTV$K+Ii&r>aK+o%2tf))Tz z^c{4$HNSu6&OXbn@2BjryF1kU-OHfZ!!V4p`F+agZhR{9@r$2$m|>iS zpOCg=WFI=Oz)=}fI!BZq`hhU<;Ng-)S~W7F1i((=kbd(d&{>>csMgrMac@cZL{??$@6yl}0Lsm3N)ih_+<7tm|AR$(uEI zdoh%KIVLI*1B0;V5#`=PfUU4rdgIbSBw)-a+@a$zHd2A1o=b$pcgsO?rzl%nyXTiP zcQ3d{ZZ?$e&nwOdQ@Bdhf{qxkxtKSn1EVt85RkrtZ)ufNLTxhik4rD%?&7EN0C4JU zmZ%|0aPasE&GWwq*ezUIb93eWe9PM-|)+pByX#kBfQ%+BDH1^+jV_eyCJo?2pxxwCi7SUu-&*uMU%DN2d^op%0E zblv|~*9W9bKuG6ORhYbR49eHP+D14G7(T$7lK`Qs(=cN|0^@*Dt3rjv7wWyAV;qzx z%Bi%x32N41!>|~jY02qZ{S3jNSTLv~&+D0a?5Pjtlbzw~^>pBs(N)AZbk`Y*eZy6N zeTud$iaf6vbyQJHg5FGY>aE1mv|5+r>hcUeEeSWW+FLILne886{;!q@^S1oiu^V}d zKT5kX4Gp|(`oM}4C6fml)Jkp^d$Atahv`Br^*4X$hRIwi%N<17!WO-ZK|0r>P(%(92(9f%x!9^d;wd73a}f) z^`xzDa3aWMTV|G9f~ch1MHGa=TmIqqGd}r0#Mf*rES*=U+gV^LKq(cArl_Z+qS6IS zzOt&S)Y?J`-U2@(Z>{2g=0-YUwDj~bKsPMVzqz$ldY%jBy}i#j8?)~+}c|}DR(cQsgxQB}K?gvT92;ZmJUASKoNooj- zfxxd$zuE%r??_u0Do6ESGJa2^WrJ+oC%3DpXA_ryDnTzfkI^4%buxJ&JD#J7>eaf4 z9o=KHg~#A?t*8b+pZ)hk;3dBXBHC2iDB$q3q8zyb-O_wSQ1839%&@lK>y9OG)3nP; zZ-=ATUEczu(x|PTA0!f%rx)Y$>!i~h?wlL}yW+;`Blnr=z zs5g2UXRjK7#iaA;tML}Ny#xj?)j!)ND8+~+>~u^^!b-a0KTVqsoPewP(98_}9ru?$ z{OX<3?xqx&7UGeqUVoj_ zab4ZJaY1lX3Y_p?Dv%Qi)brTdY^c7+o*s94XB=BlyDv3qmdjv^YSMW*zO2*2J zlmE$^#rd9@g<_W~vALOFmE&iBcr(A@=wL2n_Y%?{XNThMd_5yu@BxjTL?g;4al)Pz zwD){aOGGNMkA>e-HqD*mcp{`KI$wP3Nd8q^O1=}YpnUHve-oLnMHiI5A^UZ{=)%D> zf5TrDa^kgwgoWj$LuEGkkmRZ7y9oX8&K;iFVW|7ME7X}$T~_tn)^1$=w5~y0S{Y_H zx65Hy<9wBC)5nG7xco7Q(9yr?`dqHmo?E%+BmbV0WGD3K`U5-Dv*(bIZx52`+s49P zeu-I_j}j3-?PWZ7j} zQw?E%^v2U84|(A-J#X#(zAo{C`xeR8#jz#hi&d^`jJ)fPZ%S*TT_GXFi(UrkjmNE} zd8&qskGZ_ccRy2^^E9d}auIC33puZPz>l^PjAu$wLTmj!rBVO9@kqOWC!Md5@BJ^6 zfy0Jm-UthJhrU$K#0Ln({61fv?jaJV5+FqFW*PZZA%CN53PpXFl#~=M-sg{Y4~(JS zPQ$6zzEfP9t%;Ntn;P8@vHt!Lqz;_KS$z1qhbG&3YXD5w*d+!N-}Mbx!6{zAow z8SvJ;3r_YrfOv~Owq_~va_Qh7*o z9=)FRjjtxHRHH-3D+~KA>#y;0wcd)pZRuFcIk`*s*z$b|)BN)==MwHVBH{-S1+Xi< zxDb$y#P|)MG_Of`F%rGF=SmGE`#4%eHf+$7HL!kEsyiB@(i(?<@?mWNCONCCa5MFC zhkY#*GqX%^V}!X8rjr}UG78MEqvn>If^UFXP8QMqMf=edcEg28JeR}XFMBUXY)Bn7 z-}PjF$2RSa`V4W4|DVt&#NW~3+meay3ATra4A_>oh_7bfd~1ZZ-<%xYyGa-QQP-4S zOGd7$5M*$(kxxfQ!iQI1`zc4d%c9zrcaNlLf8udhyUNyiE{6bl=kp+$_LTx_ zG^Zg%sREk<#VU>A$GLi>XWEbf(mlFUOT$rAvA8aDtl*<9@TBdM)V|$P&CSU07AD;5 zcUfaHJ`}iy+fUh^Y{7H@NZKo>ewPG0xxLo#)oOU7*HJSD2G6TG0g=@fmbs zIcaq85w|=Iq`YF}LVV*+ouJ94mU4*Z0mG4{ik06)uR5hy--zOA?`WmxxXR08k`Z?d zaH#yP5Z-wxl~wQ6oKA1_UHAgOZ`L0XQs4#Rn#v&a7zYMoV6sIJ;gsZ|M+$}jABB@7 z#JS^sC&PL_@8C!GI$myWL9iIv$n+dd7y%|_MDKD2W2i#Yo|{tJ+={`Am>Eo>U{1Ug z8yw6co3o_sGr{QDhl=A_1x5+svf7yIoA#xltNQMB^kuAavr>-mk%U`ea%A=|ikcT)ag@ zv|kSp9V^uMJJodmpvg^YMN+gd8Pm5}D$aw*SPsm?Xh^v`vFS9Z!+iZKJ1%Lh{h#jd z|L6j0Hle9XOQPOn9`*1oK+(wnZid=HcR-^-F^_y-zBgGWw)P5JkaXoL1eYn(h2-7? zjh;Myqk9KA=O)d}e)h9#o6v(ZUGAjMqFG`Kd9_-ZXZ*2w?Xtvpn9nkz<_O*0FaCI1 zA5$qyV%(%7VdhRX3nM;3`-KDFVN#2)G%dmdO$A)UUevc=yVk+PO1!VB$0p;^(GL|G zESoMu#)q*5H8ruG`VMFNO-#E)DXkR}*H(s`y{tQ|mc~EU8VNKlrPEB|UFUg%MvVo2 zDb^E-6Fp(bS^0&5qaFGuO|%tSx81><9eh%l$;?-=qO|QD3!XNe5k1>x4x5YnsK61q zRopjTHpHJfAO~h8iCrZN48*CWu-G6paGPJ0{>2Y6u}n@`;D>m%Ld7>(JjG1nHf5YW z2z;&PwfPQ+fevS_Cyt!EOWSGnWep%oW{Us(y790%?`glSz|SxxV2OXtGc8ub`zh(* z6LwZwnhrCA#zRDY4|EUM0_y|BDe$*ZJ2<%f3%_qQPs*@gbba+^!7O#(5AqShcYYt0 zFH3AYbz;J)XZSLSv#{&6hfWkf@k8*W`VStBZjla5igtQKshu(d!)c|3X&=)}#$WA{ z#E494${hWAtX+Yz7;{O+qj!we!zx-*M3o!THBp_~)0>bD3}aqO%rgY)Eh6-vuACjQ z5J6jx8TKOt+n%TYRC87^z~|Oh8pK-rhzvQi^V!%X6PR+#^tb;F=_CsMvcsxwn{V69 zuSzB23?0r^TDKbtT!t|h|B;l;RvO6cT3j5v_O*HdkqQE_fKvHgbka6Y;M( zc`p^wmPlQ$06O0UH>QyM=$DTKku!`JIGLh8$u06ly9XA3V!))8%sBu|uLzWsS#H{U zfk*3)143*AW>hP*B@EIV1jHIL4|;|gp%4Tqp9edw!d)#2N1~~0@u{lkc7t#0V3UcY zL_S}t4$%5lhI}r3o?yFP-iXGlL~sb}RMdYZK#oNLk+COJI=F~pMlz7cQsHQ}GGGpx z(7C_n^+1Q-;fKFFf0s&+aKIP!?VNEAqCNhm#5&hZ&WQE!&tLYB$%!O!dFk?BizziH zn4ciiXM_d@`-wj2#}>+e95IaR=?S?E%@BAZ9E!QJdb9MS()wb5OemW<5{<|i=6PR? z-g2Qkx5g;1^)a-6I1OiU#swrBUEU;Jkt-779V8z|!izcA^VxEP?pN__mV~pw&d%xN z`w`@}*V0YM{{=z#F1Su)b2#OWnf6n;k(&D^K3vn6)$evz)?5@E1f1BDK7INm+CxIu zaRlgM{;bnAc5gwTZ3w?5@xKW8m5zao^%5bf*&gd9^|MD19E6Fd77yQ&4a|&6y3aeu zj@6AyiPeNbB{CUu3FjLdvX4;@Ga|M6Q1FhfH_5W4vip&7}4Q=NyI@KR*FD!t!FOvBsO|@DO;0hFx8Mf6RAZHvjg< zbstIu_xU6jKm755lkdU@1#<(46!yeP!>O^g);779A0B(V@7bhe0H@ezrspdWvO{`d zJe1o^tGGmC)a_4J(E8Ee2dKY>=VaPK_ILH=ZIKan(_O(>sKdx z;KGpk>3uE+=>U4jK$Js0@fSIHRWX_Ij)vf;p5p91o5@G+^-?*u!;Au9eg)f2f&JZJ#O2>tMFH2xZUF6LgnpI({SUbJuMtSl8FS`9X+;kM#AO9h zN84!*thGk#oe74??3~)QcvBASO9Vwvf7xUpO-hN<@=IZ(26*wpQ<04zLWOb_cnMaB-+4 zPG?Jg%LbD0fM7Jhfe%yioIL0G9i05|{G2&9&U`qIe<1%u^nZN~fd+hO*t%m?mOHGLHB>ip%dsunlo41Y~mR zG)k!CeKiqKRj>O6Pv%^k;f{y0i1X;11+3lFDmG3vqOMZ66725g+3QKs#TxN`vQg z=JbvJp1(QW5cb);O&H{KDcENfUy;w#e`Ge%?@%e5j%i4VQi5SE_&1tz!WcnJ@&nyE zL&Is0+#POnZ3TtSTwE_hzOnN2D+3TCuWUn^#1_#5lk#}X3Zp*n{E8s-qb$3`bnBh9 zbb^q~92eeYl@;q`9hn%8@omF=#)4_Tc&g@0Uh4x%RaVOP;ZkzQrKCOmG5XwpbYN5i znfr6yPNf`t73fbQR!jKVD7<+hHx@a9T)(IIBJfePw6$CJ=L##d&$=XY%7`|Js(I4c z;H)V3rA+|Ab`t43u5GzGG*1OJIKFz9ywS^zJo9yayF8;hVSacqrYJA(!W}z?yrZ>@ zqK%&Yv~)Peanr=4Fvf61bs+j7!3gFWcJdRYH?uOIdXkry40O=7T<(xyz-s+Ye4r`i2`u9&lepDUpEBQ$cP`a1w{z&Hs2I+3x-x z9|FF<;y#M^%S87RDelVO7s*!XWY3wRd5{lFQvEAbg!orc4e~diY}4`}{)!pee!w(< z>UnxSMS*_T6H3PMoYalD=Cjtr%ge{4jMtsT4kDPm2e7x*)`2bP#`#7w zuD`tPuoCdf4i-NI-`pm5Dk4aZ)cU*S)Vx4K96mj>09{jVcBfSdQUBtYyoZN8dSh8@ zPW+#`kN}UaGhIhP4Ie>lNCh>xqamBT<*~E#ms%1NQ`1eLHI;9Ojjm`~R!5uLB<1#m z-zN6s;E^o0Ku++LEqZmUNT?O;39=RJyGVnfF#J6;Z9Oz)WJUait+)NStQ*zS4*F@+ z>czKui~f>CPIlKb$C{1IM>U`C$V*Q}_-Ea!f(a)lg!jKzox%!vR;;ErTLP8KzkXnG zU8}>i-Xdz^Z~OqSfGN!JObZY9?6+nw7*8$S0-fhShg*K$WTdybN8za0COE6t62I6Qh}(y?HmoQ+k*bsP zB%vASPI(Rvas{{46gRV71=Ex7eRpmYMB>RE7$oRIySY2M6C?rwx)gkL%1`XuIA4LE z9y8A&S{u)m%Y&2U_Xf2$PEKIGCy76XE}r|1)RH@)Kqz)RG4{PWZ9-dhdmN57>o=i- zV?RVl2)qy!9eT8;YYPg&m~f1xO|;eHwcZTiI_@OQVJ&;dJdQTzi zYWQejU$(ZEXn|a#)se2v^f%Ywo_ez2;(=UKa_T*~>epDd^Zf9<(0}tAtdN6++kH;B z#;jAH(_n3b#&M48>-U)#(*g4@ZC;~+H9&-~0Rjb{SzwxZvEpYkf8j5r8ji2m)pthi zlz1H&s@Lf#&X5_Hnf_G+!Y`LzWMp*|QB3A9 zS4zF+eoyM1aw6u;w#a{YeK5O|(@D3NDmomnrtFC6|7?vvw=AU7?u3HYSe6Az)e|>> z=kX680!&9QKucH>TmThwS^K+UkQDoguYQ#cx{53C@((xbACvKkgWuDse+6U&5@>s^ z)Wj{po{VkppZ+bKMINj9a{^#9GWgOk9@mqKgY9CzlHg~dw70f>&kU*E>XL87rZr`g zZ?;!7B6QFTL*Ik{2>_3KKIz1b_bKOfrG8$;+|p?T3CDz`E_)c(DOIsuvMW6PZ|Utl zVOV%p>5i)EL^^%K91-icEdb2OQ}##P6)nkrXbxZvi@`Szv&MCH<-}b3wqj;9GBAZt z`U~4;13iC$$Ww6oLqO*#vq1gt+@y;4^2s=8p*-_1Id)kkg6LC{NjtEK&mHUK(r0nd zsLNp?I&X}gK%Rld)ZYWYvRS_z%C%8GER(Ta+%R{*=BbGStxM&*5tB9L3r1w`@)GiZ!S2XP@tDS60*Uf33?qo%7gmG6Ok0x)h+s~A7?;6il zhLxUI|2RsBv1)0G6m!ycJECDyXyJgy#&Bqo(JKsong~u0YAz2B^_Z)$?jZ`#yokQt zEsuh=pI0J1DQ&|&eOX>m;sZsV=&V1w*DC8ytK z=D5Z(oC062%G8)0>f^q4rM&M5mjw^){d!96B{)*bEXDgZ8NJsuzxIqJ{Mxx}B*RDy z*J9tt)phq%_75>l;JK94NA#vSOh~@?j4RGOH`LO zummbpRUGA(bIzArK&e<~5egd`spJM{y^MTfaa@~VR;vZ7=hr__Q{(CDOA@{713 zvP5=+_`xSTtwyhDdR$sy&WY5rtBhf+M8t=>VkZX(q0_wfrAF_Vek+fD4Lyn!t3IG} z=v>~^Ct}liH@h|W>MWhB1*ef5IdVwl2E-Bk{m;6IDAq3ulO=_V2NzPh(d$*DinF4a zww<)aDoO`4t)7D(WoqPEx@+`z2x1%mzqPk`_A&;zA+<;rKU}HKQT({qojlQu^^Q)l%4MaYx5;89e|kh5GOx0Oc7WHa%C^?|}Pr2n`)~yJ}xf_UmGs0?l-oFZ%m%n3~#iwHi|RY7@7- ztnTCwc$-cwHH`N6Od~&FK#?SQ04<5EiTY$ljGrwQhwN^4EWkN6oA0zY+nmmml4qmj{ld+HtRfgXB-U7kqzKnDsYuFxT`%Y0_)VMj z9)70rEX~k^G#!7mPXuf1h2f_nW3C>C&J07aOzh6KIIVkQ6Q&INqR6WYOMlAEu8*MZ zP*7D7o9RG8Ox}{nc>Xqae{623tFhxiv`bhP%`L-~#BHO&C&25f;YL&1#*J>9`VLX_ zH?{#nYm4+Z5XKM%HGZgL`c#nyH8DT;gg4y%9-u}1!UEt!GFLsYRa6&+vI&(DeJ)bb z=mhiin=CO9kThQ;(3$$eHvVn;U)T|ERMrhZb>w$rN|bd_J8kp2lf(4|<|4LY>ql(R z!|cv2MEB957aj0AT>p-YbPen9RjnrO(UXc63uBJbKO$vwaw6hLKBJ_6JI*&tvXe!= z)t35%G&QJj$M`Vf0Dpd_W%|zkiEvx8jBa2D2OS7eMu#Iqb#)mFw0fH~`MUJcDj2UU zap0X{v?aglZ=xy4$cKZ6f0T*eqrofd$3+j@`BQPgz6=6MX~2s=+*jDhR={uHe3bCb zNoMCL4QXO?#O3?7p_|lZv_2fF8bSEqJ zb*tJNvefiKTbsQ@>Fa6zJ*!2Y(V16JbS{vl#Mz$&x7XW4og0@SP4-h$sQ;%X|@uN}Xy~z$*#)KG|uZqZ~npbI4 zR3u{*75@B7KZoBiYsY}8XHbat?^q^>Qh!78Ng9G5waQm3~z`>3=Y9!O~Ko68KuY}lY-m6H31&#$Mb zlhKOh*R@Sxbf5Y%t0tnQ^V8ZmPt&_r8l21VpCd3$bQ^6qvk=RP|65MqI!xQ0r#@Ao z3+blAB=CZNGtv_Ymk?x(MP>ah6kZtYBgUd7;m$~1-|&|(5H1*#pi7Wm^CuL@P#Uc8 zjrJ#C-3wAzZ^m(W>cVPL?w%rP-PE4Rn6bVHbPEJcHa@G8Gy5mvOUJ^T z3Ee_!E=og0RwFfpZFtW|L=S#)S9n2tEpX_yHs05iO4_XI64-{OYDv{zo&Ykxs&2_hN7=Jt{k2~h+;dSozAawP@J|@EK#pB5&nGY?xSlH_9FEQ$myz+C;GT1hGWuHBO zCt~e~{h8M}4y$^jh*2?PungkfhX?LxuQ}J%Hkd z29BB{ZYS#&ANX^u975w$(I6jJFZZeDt5v^eSk(Pw&3p1kOKCKbWi4rAH?3n%Gn^b7 zQcc{YhaaT5Ppai7aZ$VSzUT>2wM(-Qo|w15lWS8kVObrxZ)L4@bu&(zhcSyDu3y>dQn{OXws`zBczUm_A4Alo%%v*aN%DndG2PD zmHk+d`y1qppZM=k>5Dc2xd*=vfD2f!WKUQb5fd&R2Z>FRX*l|s(%Mie4UKkZ4@F64 zo0zB9;_rw!1Tc66f)P}#c$}Wb2cvbvqvA`ZQwvvVby)+}yt;*3C8xzve9=kv{s-m} z{jyKa!ig-5lsO?7o)!|}PrbNzr3p>Psb*@1x6_WgdYqcbq=Lj^u_}*)nH1e_(9pA0 z`4PYnp(C$9dRDCVn!7!Yc>P`|qO)X`0Q-DsAEDqvz8ndZjuuTMi+*c})Ly1YLFQmW+RYfs48=3S^$Ms2XnJb3cd8Ny~WzyjdE&- zWhcw7+Ppfl$C%9DDh)+IApWcZy4AP^lgVF0gjY&wA9ITPsJZW}y_s$LoIBGmtY5Y| z%)WmSVr9K=HEFXCq5S{?M%K!kMhKQ5z;_5FMIGNB32LB==*0W+!&?zT4+13AKq&@q zkzVVnLz`TMF9fzwOrh6v>((6u8%<;`E?Mg59H9meCc4!Igw*rl&?vr5ar?QsYgA3L zOF&a?r7>b7k0lM};`sM3mmk4Hz5x%JZ&*_F0}U;0RD{qP-Grx3+ec%5Hs!5LPTg?x z;!r-Lzocxp7$QQ@31ley7J7bT5RUJ_z_G`xgC124yB+`f0MZi*IsqA`YQjv@bqzw{ zD+#FOitN!iFi*dH7A@?;g+%!B?ueW)VX=TClaof(GlcW+9DcJxHAq52J}f{Jcz}FD z26Bq^Jt_E&K_KyGiSsA8#C|4k1JCK~!_yRYDHN|_`u1&xX)MH@ZyhB?Wqo+$=ZN61 z7zNV@%lY76h)|e+b1f=~ZXUT^@g6yD!i?v%VeMPuUL;BlvY{I$x3njj2%cmKIW-U> z9&`3dzgAovLy{+Sa(GN3C{W5pu#(%ow@R?Jm99q3z4g8#=#4eKnm}@diUNlvm}z8m zEt8_j5g>4@mz(|qc$!vvx7=78fIL)dbnpNMha;~k+a_%iQI4{9L_&2nz}aaVeQs#T z{V#jA)uxChq9Y%o>j+Sw;rt!_i)o+%PDv<8infq(Qq89r8a`t4^FMFJyt}bw)ACiN zvM}*Rx+)(*OFE>#8N7mk!bIS+Qaa{6-@V}My`!8Wj=tEeV_wyQ$s8{~t76qVAuidI8)=dT+I=K9l;3S&|?AtP4UqOHUtrzpemw zDb35HRy?+oG3U*fgi|FP+o=`SmE=vns#UNG-u${z@FG=)*~jvcJkPH0+;Q!i_H>VG zSj)Z`cQF@<&&##jX=Z_|&<`X+&d|a16J16q5lg!2GipMT7x#Mpv#e`wg93M8A&%N#&=>2OPhC`9Hw%TH;_= zD~I3{7fwq5PC8eJlwLL`2Zl=zryUQWhwbXNg|jj#@rA_Os9H z+5bn^TgO!yb={(*ZbH~d3(}oZ(%m2pB7%T4(%mWD-Hl2L0)l{)ba$t8clTY}_xm|Gw`3%14lo`^wV!gD0^h3H8%fvhRbZ4h!&8pi}P^v)B}aq=eH^ z>^N|y!wG+eaN(eVO<57ca==3&?K*{x8AH}lm3UGoU-;>~ImUFGa7KdJ=jDaLwKg1_ zkqFsOL+t9uWqce9Au?)9XZ{(Ua!|uySJaj|jE}3F2iqj%4vGJ+QFXn1jk-VI&f9Zo zw58!u?a&*czIbeG8t1XdzWLZc3dkI@Dt3T&Y=PzQ0QXgw^nTjEQ=rzZZl!M>` z)ED<>y92$6#e=*C2MSK?Ql~0-Q6pCUct|ZZD z%&qhN$@V0XnLkEJiGu3~M*+u#B=-JL`4ZbF=Wi!|m9trSS$?m)kc39b19b@#;2gE+ z+S0=LsX#-zidJ*=RP`6s5+KhY8vSl9UIiJ_)uazDl^W`pyJYUJq=6vLHd&yZH#Nq_ z2`;o5*%#3X+hKu9K_Sa{GbX=@Jo#G;G6J3lpdl}LMWmPJC5+Fp%}*-FI9d6z_Hq}0O{!h(KO4W@Ai_E9zWZ!l zquAHGu%_+CQkR^qpnE|q4UZrt2^L`VlZlN5rbo1cnbWf9AW7oF-J=t^oL68v%E_lx zAJ6rEzO=WSj1s?+4iW!nJBr-Bz5+xm4XGArth<1QhS4v68R9Np1EqvVX>>bOB9*fD ze2La|uHHde5h~Bb<_X-p`Ou&%TIBw4&@E{=J%gLv7IUC=*kwJ8CSr@53X5V)$ekay< ziW>MnDf4JbgA8bZF4>|RWa$5bEC$7|Vpg90g>3BV+*F@e>ALN=+{#J*f{EgkdCq?DZ_Y@b+|dQ;03~X@I&n3k z#6W#k1`A9FR?tRCHlWn4JqB#6O_WE(>+BncNyV3|G|JT2%Zd0pnHqQqsUR;i>U^T< z3k=Uttysw~h%v1|Cch|+x&M+cW5eO_q^i4(e4>$Y@GHA!-G(!`y4=Z?&9p}>vfl1# zexaV59q-W&o{w@ijc(0HrX|AGpol&!s@gGMkKlWbHLv^=+%_XY*k8t_$+BcrF`K`v zVoI(z(c-LnB@DR@rMvpk63FhS|8`&R6YxhWC)QMQmfl#p7yAQu?(CvQ$=`oB^sF;7 z2euX-1pnu?NEjTO|55(IJ)nGUEYF-OyH9kg)a;AJTg807Yz4#*$f{v65D+;?E* z!U7#XcA+#Kmr}LmKdp)v!`;+XoJf9ToJqxzCL{vORk0jAIVmQhYLHm7cZ9FeYqEH_@_m4 z%^Jv#YBQbRbAAoNQ&6x%D^QOw6ek2bz?g@oknJ_Xh^xN@k3(#f=-zL4%9GmP+?}_O z>@K55VVrHs7UbiX`MNZ}9hh0llRY&iw9=hO1jSZ3_KVVoObZANy(fL4L&Z{t5ML;F z5XmbvE@(?K0oPf8)(b?CtFoOb7i$6NNS@;Ea1O&f%O4W%z27S(zrg_TxF!WM2omHX zZ&CruKiR)La#+yPr(~R2YjK03-XT$&+(VMk3ZN2t^r)?l7Z992U5dl~oWI|ai(F3S zajdL+(R4sEI%+uYaZ+bgQrc63$%%k)O`*)B-Q(hI#?6k9`G*dB_2o~{uEOVQs3%Zy zjbz26ax)C0!dF>RhCKfMOG8JGAWPE7K_|0E=k$bPyeFXMifL;_VZ5N+sY=r&>@I3U z(sJ{+Of2{O{<*Q$;=-idv01{w&6eEz*>~w0O*jYuef4uEG4zKHA#!q7FdEL=M!<1_-iQk{yEpf&9+$K@G8XzIXZl(OBAiKHFd7JiH zkX3-Z=g9T8q7=KZelLFy_koRpu`9Yj>rXGZS>h1iL8}E2B!A&wI6iN8jR`$ojAT_| z&+sra1gOU*p>T2oZMO6}ElWiM2E2$Jl&=0ej;U4>k+GgdG*u^H8scG8c=u=Dnhu-g zM4F0$Av+9dU2}Im8Yi{0tHj?!>C6AzxiJH3o^B=NCK$$x7Bw~~yF&EhMPXBuce}*NHXCa7Q*vE8 zs*z}1*cM_mBeY-w;AgTJd6ASb+k?r&(G6l8y3NQ{^cg)zm!0dGxnpOBI~QKjD$_?+ zKL7ACgw%6&y>bHW&iXqF2B-*@@mEQDuHDLRk*PNlAJl~N=NQr z8k$ZwwEg+GWQ6(CBz9hJlK9o57ei-t>_xNUfbz(}tJ_26R!!9>$YK~I%rZXvku^|kROcQNZHX191D##S(EAhMhh$c zx0A}dc`MPL?{hI@y3OiyjfRrvuCG<^NdE!Q3D!=ZxvVeMInct`v((K?!aqW(Mr~@B zpFCf?8h(xuybWe4V}IBFWj#!tJ|LB>>rVf{dB&J3>YRbB{ag(1J`D@rGn6g=Z3Rsu zxRtg7OOJ27cD|bc=P;q!@8gn1U| zNt6{;jZRD>`uUUV<7m@Q`wx%2LJIg*OV;`8$7OA|cvEs?&pE@`j^~@WDq3C}e=2<4 zbqwuP-8S4ty=nOoa@JYj70KtRn&}Sa;a*|$2bA@aP5Vvmv7fbd4GpxR3o8WcJP3)a zJ3Y(&#DaO;!{X!{+NP75!}r;I_paifUnWLC@fYV|=F&3If$QfhK6k66+hB&oUhq#~ zw|J3U1~s~h_CBMuuhZFPc;0>j#(wWUIM6b(kwjxsj5i-g+MrW(AkRE}2bz~C62aM} z!8RMovx|$1Y*yWdl!yDJ$HvEo;irJO97%V>!GUn~+|Xp-z$y@Q<5bNgBBz#i536G# zkq-_vNg>pCgL^U=y}vG09K%=c#k^jT-1txjaN#PHL7c1#hDI5UqJP7Yx>>NEa5!4!|?qQ%do&=2oVM)~b1w;^$jEv|SxZFZWEYUxn=F z&YmUm7v;_WNzY{9l@ya)a{D?bnrL0{)9_=TZj#%{fXTH--e=yo%hc9Yn9+Dx%Z}`R zQ5d}aFCQy26w|q^w_<{LSznN|G}M7P?1d#I@^PauH-2H1Ow4~n~yauzAA0xHp)P zV=>CGhyDnV_oQh3ey5!a!wFxgte(*d{E>8ZTqZ308p7H*#g5`V&?{AGF!+j@;E(Rl z93(=r7#J$mz@K|t6r6(YCT%rWbadSc=6S{j6TEiY5v0A z{WvO@z_~>w&pC%9ZxqQ@m`ouN!{tJi(4jc1SFVyjBaR@tD-Q=Hkgm0;Lh>3ao!W5h zUzhsLBIG6yYlZyD#%cEBT}U{Pu8?lMd;sDUy|`sWe*AzM*CVu*8z7hn>^~J8=GO^O z6F%+dc=|dQ%y3SbEc?K?+jN?F*iF2=vIeG7^HtZ>s8TcDf_WYU2^<1Yh)f)4)9r3k zV~Bai6x$*ofr3EqMmq2*zF!L&xL!a1ebo^PNvAmtu(8ZD^R$&qeS_9u;+9XfZ)m)t?cA&bF8D4v!RvJg+d zgHDgkQ@52AoJQl1IZW=_6VrBIy9Aq`(~mY(Ov=~AI9z}CTzd<+rjAn_zojF-xvY;C z{o_B)eG2VYlt}@-N?V?n_7)J%Oy-r>B&5vYwcW(pQ&7Upkcg ztm>=>>ptu{$%_3pY0)L&sLO0hqG(iGbHQkEwvH#HSZHnLSgdyD7Hr;iMcOB)I7@X< z%8AYrGBm4R9t@WX2_N2~*t=>OotdF;Y(FLckD|loRIAEl|lzUK$%W59_QxyiA)e9v=Ka)TI}{U*34}z8<*G8)ex6(NQm$^G@#& z*cT7)a{y-7%z}9ldxr);IPUs#FI6TNz{^c zR40Vvy-8Re!MDYDm9PgA=t@H*6tWl)QRAfYe%`WRL@%EIdK$v><4{{q9GX$x{)h_%{RZbTXJ0Kg zdK6Vu#9IH}ulZ;t(E&y<$WZLn1CqY(8W2LT++TGGCspd*t>Bv<%rCP%0&*&`;MuUa z>V~QCEumYZ?*B`-1Kz3gGefUHz&urz;gp}6ink&8)@*4O_t^g_wF8uB)L7PQ4MOiH zRV)bsqJ-7u$^e>3^xrQ6Obw=%4hjGhSc?{+{HPSV%>rt;mj>wi6foM^Uw4|$z$u~21YhAmzCC{B&rG!b-6*X069f-)zKo(z<{SZ$M@o!^P1Kv|+Y#G+!n=`o|+Zoy8B zfBieNkxFNfZwOR*0za&wIC?(mWA8Nyj>NB{$)t3$#yS?<)_LQbm|F&6y#!!0=>(5KbYPzEDc9uH-PCc_cCMNYo^lpKHz3JXz8kxduwYX zpZ!-Ym#d5ADGN7xDF7F;tOV{lF|1~~q?DT z<9h)?ayNf_%^iF4deYX&Ie~_tPhY_H36c~zm+UY2Za&Bdh_eg0UoJh;?vfp$4xy@y zfKV#=`2}Js9B3ZP8yza5Hq^YeM)A>9d~e6fm+D#YwY6w-9NL;B-hy6Z!26ZZ@sG#* zyEkzK0^P`3EK%5dKg`-GTFZa$y=E}A(Z-KYz39%EfSNMKgsi%uHLA)w*;gt6! zIL)#l(B0P0I?#>VIe&JXUkoMC<&lz|u4ujm0)CyFxu3kG5wlne$NqdRX@A%n z$$|8k9%YX}9W?kqvHqFL&dt(%l+Cp&de!uPf>LOTanQ)%u76_fuOYaqrCLgB;&e$b zI>mFUY5UteZKI+T0iD!V2@e&7ygJC^uAc{a4LKTZBV`57MJ6;KVO>G<_HyL?*Hei z6kGDLpJPmLJy4M&=_6tLVmZTW)cp5FUfPJ5&F6+LRMl|f@?%O5C4t01G zC}eqDPxp0^G|@zVSecd*x|mm-xXk=be4=ycmiM?qMwZ3O#l=OH5vIW?_k0D>A;jk_ zpY*H4Ag?LG!Ln@%Y=)VZFlX@9=vVn|Feqs6$LqY6i#eNuq@*M)hY&O{H0EkKm$Sxt zL9Y2`qTI+Qe;xXiT!><=5D5VpAi6hb81#IcYyk5&WaRFw`;xUdA!^}VGlJDzL)xCC zSoB4HV`^ly2a@^DY`;|(^*@E(4}7ocbW5AuwbN)7gE2I%rwk?OBF2Zea5G7nFii6+ z*ruv4=GltVAn!VKq8zVd+)=tMINVPJ58H}vz-19Z-Q>6Y(0sK{ebq0WOI1C7>|3i z1<$COtY{&wmc;geZnt^T=R?c_2Kf-u72Jxp4#3IHk=jpz^6W(<@rBEh7q`_+W#Gm@ zx-|EaXVpehYu^n=_H{&p@L|L07A5I*_m7&}%fkZFyT4B>g)&VAGD$sK15nNYVcX>$ zkqUXpi3G(+wyCGS_tB8ofx}Oup16DOF6o;vSeWK1hli|6Y#*v8@6b+7pWWEyjLxV;ht zzB4tiAv7gr{7uwo3o;po!Mcdz@;jcH-Js^_?@Q<-4rSn(e?(HLmQNRPThEmB7hWu8 z<#j)}*sC_WTx+eZ+wLqHn{JF_v~GyBe5x_P`2G=>l6<&F<%G}w<0niB*Htgf?9(Pn zx&I}z$@q`;szLiM*$zf;P~v{{ zyoCt%N?fHs<>yjRTzi7=)>{5yMn;i;adrafeU{jdWC1^M4tZFJY?#e|x|Cnmby)EC zW>0r{Ff>x#Y29g!f4{X=2}uwSz!36($R&emq*{6}p8q9Y_0ybGHoNW2;M~hU*J?n>``UaimGpX42Y_iPU4+@Wt4dF>5N1Mu+C z!+d*(@QqQ9g@KwB=mUsfhlG=LnGR(w_;|Emw;g~PmjDP;T3=s317jZimxAaiMHwD% zrka!N!Tbkm82)u{)&2*}9up^eZ5iXV^lspi$DQ5a$OnDk>r_w-0HphKQ|FD%#nxB&D;eId-V-K+qN zkxXCjOIBmT%TLzxP9M8hYn;Cs}t*rIpZEc(7=_ zjaUWx7(bF%Z%~?VYt9HT*?F@d!BKkM_G@M-Vz{OsTHCKaRj#fVF_{&45Z2_C9lUb5 z$EtPMXK{CJgXfKbWLrD%bPuL?&gMrKxJL-98O@YH87*hWx$~Xa4ZSJ+xpq=peA`7g@uY zY0CJf+qtw(<;zlMj;+xfqMuz+4TP>5ODGYwWnt|0pthSLZo5oQb|wyZkCsTBz$ zQYaGe!6#;s?2%#BlgO))#BJEk|Dof-l+>{NXi2SgDY3e$_q05Zfu?Og(N)L@xz86Y z3nBxu8aoqMmgVA5605ww^#w)2rx9KJ?}O2d3M(`w?CH)Y)O*%y4Of1ms}{Zm)c>&J zw6=!uK;I*rW{Z96Psf-(xn?8dFK(jIHb(DcZN=!4gkDAQ!SZH$dh#p`6(O5Nf%@x> zbm{Rc{H7!19l(W}I;h`ec_Cv>8!syx@_6|8z$$sYpXn#*>J2MrD6?%`dBPWdyNn%r zU-Iv4Z4pdM#Qn{_880xSDpy_BcsOdqybLy1;>KyOg*399gohjcpA}ijE4!vj;n|@_ zH13|ek@0^JE?S1)3eP$JyrdYus;q|;GU z3~70*K0&njHMh@cKKez}$m5$G63Wu-EJM%P@oHB* zWJ)&zL9Bs*&Jeu{q>(^k>*(uL2pBkDUF-SA2@`ThNCDt5;;K5;TaMRzG_k(>H(i zA_Bq9`&%e3_SN|-dJ@-dQUE$DUOYjhYG53qULwSgHQi1{{A5>1f$#$tw>pS78L-jh zi(v?zb`^tf|L54&&2G8o@dI6VhG+;rl9ZzX*1sAkB<#l;erZEU3uIwgfc4uQ#ajatU!IT+vxC&$3lBtWE=_vV9GyNW(vZJg8XD?;2% zAbb;1PQhw(v17+u9cXKg<@-GW&nKb`7WAsm0%wx&09zRr-GM6D49rMdbN($~vi>|8 zL#&}4wdF|eA4^+R#IW)kSeCr#7o>CjB+D7Jo;DWI8}McC*aOR!1(vJ2G|j9L|E$3B z0G34p1uL-XGw1jgyl)ni=7&C7O&Q@j4`k4W+5%BrWv`fsAo%&tHaZ8(OK`Xms_iz{a>dExJ*Y8oXOSq?&2!O3U4&r6rx5ZbxqyPHI z2g?g{bS=x{9=h)An;2fEWl5kf@^F$dmnRDBWWM8IT10#i0xNs&6oLybAQ%ta_4pv3 zEfPu0^UYCiMF(sb%or56+CTFJNAQ)L>vkrdY=F)5)VI1eHIvCP7)Mx(Hezc2iT_tg z5UStbvDLo^$4_cf)98^O#-Ozwlcz*OFLW9ZqF={tI$DFT=Ha9SzmnqEhBls9Uo@0&$0k+MUfm`ud_~(( zdZYQV{693Oe`NRRK3lGuvw^)$<$9i4eL#Yzb=U;1`^yAO34_-+iVP?S zEI%-IIIrG^5gaaDbmrVx(ni@~ce~s$$VTzgD)!Mt?ebB=X^#-<1M)K1*WXlW@$xwk z80OF*c9}L&VosQ14azckq>TTfFYeiAt{1SkWPQ^e49OO3@-H)?xGVmu=0Jo#8U!=S z;YrjNdjbGyv4n_#uhOmn8!MDmn*hC@o}*~Q$JnP~S6f^6h zxp?tNd){!usX`H3HrTYeMbk8|L6Xz$TXs8(M%N-#C;x9_x zeKPK!w7yFQ_Z|JeBw1vqZtTNZ643^Uf4<#X+fRe&dY!F$qw(@MMz~+GQ zr%42%Tdr5!ILn2m%ZP{F`0JJ$Tx*{)6mU0n6pIBmfnd+hbZeLvV)s%+GWi>5+!(wm zdC&CbDfn&qpX;ra7&jrpDQZziK@8FTAT!MO_;4}uv_%7kfzW+rc~jF4c{icEvhZ^J z{?~2Kshb~IG6@_3I;DbL|VcwDD2Ce1-*qO)6*-(_OgB@6!S>%HMCZV8Kb~6&W2Ot zgiG$g7@7F*91b{-I;+?-+z%(G>_4UVa(H8H66#5Ib7WyV@}jl9wGTpn#uNc=^w!?4 zQE5psFq0|Db2UBz65PGvsO)BpJd<+9vdXE~o0ZI@~gtwK+XK58r0XqlqV(@vrW&;-&W&E6!>}1ZX z>z=g;f75(L&te}*Ipk_RY@QhO-AoeIUIeb0dX)qYAr)%Yxa*8+?VU<&&0SYgB84O0 zo(F8XWP6O_cFG>vH8Q-mL+qsrk;tu)n9WiUA$HHmM3Eq8Y5uJkbvzIqDvR5I+q|#F9`#Wx_IMBZ=<3U^$~<&fpF!(w3&Vwh z7P8?oGAx!W^Po*?0Z3amB0RY*F4k7@-aRSnPx}?aps>5O;y#%GAHt8s|53V4_la=Y zTE0e#8-Y-}BPKvDl;bY#Dlo$wgsH_FFweSoj~5*qc{acQj$iq(PX%^$*F=vOjb&bA zBhJA^e4{so!u9dz)OI;t5PsGehF`-&S7vSfaiCDhUwQNcM3^HWIJV$*)V0wx{t47{ zHOy4vpN>%{0e>BSg4&J{7Uny%Pwjpr2q@J$k793i;+a$s!MEbk(rVeeFfd*)*bkHj z-^%q3+Kl0u88&hX4rZB0nnC7wUZ)R27ES114-ALw(&y4awuC7SSMxvajR1=#|9qoL z3B-fcA2V@~xUgr;4Yc>7puiu4_t>&H-_m(aoy^oS*JuY$) zlBx;YDLwfL1ywZa_$dK4FhR=64FzV2$pn4HBxpm3;JAYCRQq`;1cziql{8VHtOSGbbcvM)%I*;mrr7J3pV4BU9w5sw?&4roH?%zK<#(4}6CY&oLM7 zR2`PM3$j^BRwJ}IoB1WtKgm%-97S7KO3pc`40xEO^I zCY{H*oRl5o@h8l3g}M&pT~t3dh3Fv1^K9a1yA*&%JUJowHj5v21b`H4sKF~BYsN0% z^?}V0O6g@4ckK}*n}ht8D3;d={o~hvGNrEsZzf|PDI>Z-uTiN9m`t-xY>XR#I8$su z(Qwj=X_OcU2Yr>_C{iLK@}HnwqSV}D#)&JJ8G79P+h&tfCba}`3(CHs4ssl%RlO>x zfl8f8%p;1B;R8y14>I#wj?S^rKVNPWt`oJnmpA~d- z;vjl`z*fzAKi3}^s?-}TQ`NhU81d!8OI$&IMXwiwr;^kd@JfjgOe*n@KZhJa4j*nw zxt2BTCO^@%2}?x<6@hLO60D^$OamQ;Sv)L4cBg#)f)@K#?~9#<3#q}+u1VPni)w?k zOFf%VTDF0@MqHwnx21(nrM!CJxL;G4{&4P*V2E(ln?7<>v`ppjpsQmZ93z=oPLQra z7uWTLu09br?jN(OU05qCd(oI}6z9%kR8JS#tR-%&IJI>`U5_f(AknhP#{@an!TQ{g z2-~EL7NizKxL|+vq5Y0#$MR0dnsei%eMd9pdK+>i%UQwaA(NBA7yM%swn-D-qSM&O zAoUxt0@Om~5*t$)WPnu(FvRh!N)3)Abc zOSYb0JZVm81VJ^*FWD9yi3-7_3cnB+vK8vPbMf59;$!*I)56U_TFyV}PCdazJ15a` z18TXlBw`}^WC+D`eJ$002_Rdbtdq0}2%qvPU56s;dPv2sj%*x`ixuMZ27 zzVFhHI45*6zmsE$5?Ush(vLhp-7G(9jgrUQ#fi;?E_aH9{uL7TL|pB`Z=sZFK&GSo zXrZqWron#A6k^FAKk46(*Iq;QliF=yt%iqHDR$1-e=W(#CG3dARd<7dbZjrZ`QAM2 zV2Se9R>SrY$Wr%Shjp#sU~~0M}M;ce;q6qP$*tb>OSKC#)4%XpMCSj{m@vZa6jw%IE zWuI9ui9B%mRRf?ICa{CptTthUn9v=WO2!}8ORUXl;{Ejl^=c@}#wZ$e0?t@%x z5_889iB$y&cLv;453c*V+uCbgX0(jTt1lkiek5ktka7b1N>C{lo&tG>>(aqT#!DvQ z@Esw0%9&?xB51ETR9y`U8Y_c?uu0`iz+H}q#8c7b%$}4k-t#I)ITj0EyDlBYGK!>A zqMGdI*I?(gX}q}MTXbYIXR%KB(iHXw#J;e z_jwd;s$wBLu8(B^*n=!lem`=+72V&z&!GhVa7|~J@JIzB`Z!4HKa&BcAr8sMq)P<= zLBz&RZLAs|8N|=M*uNW4+_eYwE+Z7eBjl5TRf?!220Ed7ik!Gch!TJ-SOnUt6ME6g zl8kDPWW?bS0!2iqJ?PurN1j3nUy1O=osGd%Xhjpi?170eolneu-cGsRQTY4L{Y|Ut`bq7=7FfTvUaGKv(?> z@z$!z3T|s2hF9`*p|h1jl1A9rt%yTvl_X>2v%lS523|Bs`U%d_&&)_=r8*c(ARiXt z+p7nn$d%#;)IR@2f$;w*dG7zKdt0 zg*iH1K@DzDGfK~4F(mhnW)bH-h0E4UG=J5NZk@i`=17c4GL*&jD7EI zA5Pr6eXi`bu5XGW8Weo*P55N?t%_uPlLzZe$?g|V|F+KsVj%?~pSBa39SjRX_8qhK z)G@3Ei8Z>7~FaLEw@b2ct41It!Nq z5`hJuKi5Z)9K0ctlLL+%Dr$jhrX*%lms@8xrD%+FG)ce3!Ma28kFKlKH4x-^Y2FN! zU~0Vh^A=`BTEvg=##a8&f~J6eUS8Vgfh&yEf+l%Lz6=$^JTo_-z8(-iT1CT&`~9bB z0tkkDC#Op!LypzG_kOz6kQJnMA5d0()qK48pe^jkSwj8p_Y11;UDqx ze%@XA`Wit@fcr!88vr}>HPo4-wt15f=S&b=X5#5z&`GiZElPRK!UXX@P?fOz4VHC|%7;7rN}0q$!KJIx4&p zH3KFm6S|$XOq@?am4a<1mDI4#=!fZajB~+f0jK;&-Gq=X z`svx%rOXULWG&5q&NrJ#ByG572WVOj|(tq*TFcyGf=K0{LXZt{g{ zu9Ap%J4&7fm;;Fh=siUGk(qp?hLN>_Kfry~U+r|h6V*Rga@^R<*ydcplG$3>*UU=| zeA1L;Ef9hZ-5hkX90UZZs^p`^%ss3JI%Hk9_t>70=rR-<2rdLZe@5OfDG(Uvv49QW z=%+EGNO|ibA8ohH%W@L6soiUuEpZUY*yA-SHx{4~{C&-XJ127yLgnvGQ>GSBjZR6j z;yFXCC_sNf(NGHk8I6*55HWsk=e14%IX-!B;2tO}+Hyxr7^ewFa%k;_a5eFbZA?n!*?5K2b-e|fHBU$1y~ab4F2DJR=)nk z7v4lx3Y5TK{L7pmv+?wPK2&3rQU|&`L1OBinS%=*_7$Pumux#DLqI|g^i|oTcHaAO z2DvQvN}x;a4#R5AHw6Yld}R7K9wQ&kw}1odf7+&8lEJcrJw($-2*B(u^_SCK|Ilf+ zyi^;P)obik+Do_Sa&9ERTHR}}=nqSm^m<4~PZs8fZDE%sxpSb*RXo6{dF;8>R zz~c1Z!o${uThb#k^;Fwc9TS5#i=yoI)Z{XDhW@#B015t7M<4Mdo+nu{ zHCCpM<1OW{`dQ1J;F%g|X8_$vW!9yv+u)SH=fKi;s<&S+pi1#$qiyfw#_3z%$4nW= z)tW?G3e^Qvxr!;wat;Q_x5vuhe}~b_TyZ2c){dwssqh1p+n~gdVr+n zDh^Mi^I#lo?znvKoAP0;{;D6i8YO3 zn6*%n#dh78sW+D44x;u2L#tlrK(`aS_{Nf`#X(zB|A}Lk3&t_HBu01BdOq<7KUWII zKE&i5JU4#x?lK-cRv=IpXvwh0gDr<>@>!fL2M@Ms9!TNf;2s~@MaxV7$6IQz5iLc1 zBK6>L;(JN4jmQ`$w5{s>;eI)fxA;KLY^u;=l`v$r!O?#n!-jm2q`4)N39fC~( zl?-2Qnum$DcDv^<+amH)$;>E1LqaL=C1X9t6qbG;Y~D_meJcK4QeRU42^fnUx(F*( zTKH2;gbDp2w1MH1YTDb|*cwV@vl7OCx~$c$?Ta zn8d98&$V`BWaMxf<^g=t$6C-6PkYIjoGC*kHY9Y*^j)vHX^E|TN*<=Lxjx;Dw@j~Y z00y2rlVH3ER|)DoJ`%CG{!o@+F>5@Hg8iH9VJzsYa9=I=8Mngl*WRuni+4W)b(id7 zQMNQfs7-xUyjO0O6%vVg;Y8muI2T|OSHujVK{syAk*zpok>p6rcp{T-AB67 z=K+y=79(+fq$R?gO5!lFKx3Y|nx(&vN-slwuKX~mx`PA6yPCZ&!S zA%RM~nJ=2`1l`2!qm>s=fxq{>n8@Z3e)M3_Rc|7r`D$mR*N~Qi!ZRl)r}O=%pG9G; zm20nqZlXkjzG#6HnI&F75#Q&b62jv5z-oBcG%S3k$#RB$w%NyL$qCT2+}+)8E|hrJ zao#t$+AVq4aqEX9r_&v58X@pC)ARGPY^4jLB&f049P+(szRgK}c4RW^o%0wy7`A`k zuJV!ZblT2w<9KyzOqv_VgLm*Lycz^N{f!gKjSNqORrp0WjH?wfzCdMR247`gORoZp zjk99_iJ=Ie+d*n6QxwkKPKx;ZULe88SeHkU#uN9$Xq>smDyD(s$WQv8J-@jlNAsup zcMZ@eylvGKTKCQZF>g%9Y zd>L}6y!h7KojW?X!70C6Q%z}c*8N0%D)!g6B+p8WsT1dCZsTc}C2rY$UJVyVy!HYf zSo@^4K1B@0#TaTDA3j`sl&iqU+1@hZXh_~IEeP!+rCi#oxF7t30jW*(9n5B(eX#;Y zBK$M&7jzjbP%0=Xs}F<4sYsu?)18v?QF+$JFHv4F%gyHN^k$X05wnCOmJh|1jnwJ4 z;OE}}cmFv0o9fSxZBO1ex>xflv3Df1>Xp^3XIEQHjXDeo7F={(>Hajs3Y~%RU|`IK z{l!M@m+`lP8i;K(d$amlu4wT{eKy zal?ByCH!X_Bo510NY(!G{>k3DJM=*$OMklOYJ__LqAtdoMlR|gO2!JmMa}wxn1I}` zyT%3GAw!|EyGA(jh=rHs)Rms+-nBT*?m2RFrox|9C7LC=Q-$iS3t^R^?8Pq^-+gHK zYSUY#Nu~YhIp_p79gQb9&FI5|D4@}H8`VZeL^Cs$gM0F?YkL2hjLp#*Qfi~y^6I^@ zB1wgl$3S?1yWWvv{5&_bG}LHdKNa$4z~XhI@xI~MoOausrA%K<%EG$Ntan}7Y?hDC z!sza4EcahpEm~KJ6(gpyH+D93Z=UJhl4$r`?AgDK^zie&KyrLw`SzWhrR~cjAa$u@ zMiZ<$A$s>v2Gt;K6y`_eY1=evWF}|6Y_eSz;{#flTR~5Y$Byp39qAY9$z-y~Lwmp)ZiMNHZlgxtFgeROwmA!_{fD|7Lt)~SWCuXA#}bmJuSg)|@99^u9F<5)NJ>$%L8LAG`^%2-E5JBTM}1sQrbO^l zG!t!k(`W_{7m4IY0TE%9Y-uf$#17e?F;7_)D6Kb&O`01%i%gf%uvFGm5J^CN;q7j;Y`SIZ60tZprg(T@Zb;b>na1zYH+q+*@4KP+Qan3r zQpA*aPKI584-Y!*2PdTG81j793?IQ{%a}^abzs|6jTtkVB!jJw#cUV@N+8jK-iTg| zgiQ7q3a%V+gd$Py=fUY?sjEKf;-y`f$wG&&P1fNmEE}%A19oiP#@gr(HnlWM)Sr9P zNp+n~`;3ib zn{BcoJC3}|t$j-UO$}wkz-FPt%zV^w6W`#Rj-q{*PP~xx!TK_~6>rj-1@HM(FUu#D zU+BlI;*s)iYhu3&h6NLEda?bwUN;uk4r0)pncMd2*}EugW;7q^$cRiJZQWaHh%H=) z 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 JbH(`i{{i?&ZBYOK literal 0 HcmV?d00001 diff --git a/docs/img/dependency-details.png b/docs/img/dependency-details.png new file mode 100644 index 0000000000000000000000000000000000000000..0501b120731464054a1aedf016b8b2ec7bdabf54 GIT binary patch literal 289110 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 *tYX*1xIL7+WfNF+4Vb-lb=P)LU#ef{ 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

cPEOIxgTLpIAcHdOj#G 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 bkGKjqa36+d=2wZv0e_Sg)o$e}m<0Ski|6#% literal 0 HcmV?d00001 diff --git a/docs/img/dependency-resolve-process.png b/docs/img/dependency-resolve-process.png new file mode 100644 index 0000000000000000000000000000000000000000..47245f1ffdf6aa0eab4f33a4e11aa50c7c8d1215 GIT binary patch literal 94871 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 Yzxjyer2Da$f59IOH62yLrJMKv3)WNB?EnA( literal 0 HcmV?d00001 diff --git a/docs/img/execution-process.png b/docs/img/execution-process.png new file mode 100644 index 0000000000000000000000000000000000000000..2b24c3b34e626026366ae85f850c311e0aba7f16 GIT binary patch literal 93412 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 {8*ErzZ}eu-!i06xIY&7#H&K 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 literal 0 HcmV?d00001 diff --git a/docs/img/initialization-process.png b/docs/img/initialization-process.png new file mode 100644 index 0000000000000000000000000000000000000000..2576869db917a9586248ebc3667e1d55251c3453 GIT binary patch literal 98397 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 l?-6{iMOQW9WKhdrYQ!Ri3%5O&Q)y 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 literal 0 HcmV?d00001 diff --git a/docs/img/module-execution-process-1.png b/docs/img/module-execution-process-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4415d6b073787b4b1c766b4b20b159ab57c224 GIT binary patch literal 194473 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 literal 0 HcmV?d00001 diff --git a/docs/img/modules-dependency-graph.png b/docs/img/modules-dependency-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..ae50c4cfabaaf95e10d891191ed530d330d70ad9 GIT binary patch literal 196446 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 z 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

5I_0xD4LfrO{y&@=HseZ;t(X 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 OE}S(ulXu!W^#1_Ns5ylI literal 0 HcmV?d00001 diff --git a/docs/img/modules-execution-timeline.png b/docs/img/modules-execution-timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..94fcf8369074528a26fc8a5b356524ddbfc8350d GIT binary patch literal 105376 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 z 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

sKEt10cA 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 h;g7f+>X&l|h8+xh(I4*sdGs-eDs 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 O_)(BmmO+9I{QnPD+vkY@ literal 0 HcmV?d00001 diff --git a/docs/img/modules-source-count.png b/docs/img/modules-source-count.png new file mode 100644 index 0000000000000000000000000000000000000000..da2439ff20c3bd516ddc126db0683ab4ab1da01a GIT binary patch literal 271468 zcmeFYby!qg+dfQpNtbj9QqtW5QW7%^NDT-`cejAFG$^ScIRgycUDDDBNJ=+?H2yaC zeZTR&&-=&o?{^&U95c+Gz1LoQ#kH>MJkM(p^-@zAABP$T2?+^bRYg$;2?-O7goI{- zg#ny-?J@yez=7K+D7;ivP+)lJ>SSeOZ;6DY5|x^c`BK+_qW{Q`H#;niXeVq5Z3iuZ zSRU6{d=5)B_@z7+8W}D*xxO=Zabz$)SKf*tQYB;Frz(!QJq!cA6puy#}`&Tz3hC)V@Qt}wm+d_q^C1m zg-2kbPO;rBA9O!Pio41LTQuI^T?Gk|wJ}6sB9Xp#C6y83qJXLHQ`u@ zyp(@5Xr3bVOrZLbgI?)7UUq2TSBtBUsxm)SuU?I^_-OKoD2;F?XjJNX|pTs>umlgSu#rZdZ=JXsg7He&tH*+kwS0qw#E~SDDzDYh}`(dh^ZUJw9 z+6l;qvWppP_a|-*Y$$3}G4zYLCb1ekIyD?17Pd=jOgd>|NwJ(bd*dSs>PXxg(~67E z{wWDn-)7nRqKu(20v%c>wh3zq3i-P1S6ZIyfAmpIW?%nnV#SC?98SVfw#0P1Y){7E zM-uj7u%Rv7XSW+CSuHA8^G0W(S%x$`GTnlXW|u6ej9AD< z9TprK#7K>A!y7GVpw>|os$ow`8u7?|yV3C8M_Nl|L#-{WF+1i0vM*_u#`}*L72Czh zxTa7#?#{Qjw|7b)-=vY=_vcq^%;*j4;Uo3xBDwFcsIvNyRGu`4DJ|y^e?rFpgo_tK zg+TG_z-~b1UBN|>ql`p3F{7Keq`p#Ch3zx2{Y1W!?|g|yO2{hzBmpZ) zUhNa;CAJ<8NVfSi^|t;tsXKBLiig6*XOlNbzPJG)k3Qf{nmwLF%Rv@^lGCCoce<^T ziqecm;I4W&iy7h5zoS{fJr=qYei~}p*^MPjN+g~a4`Eafiwk4KR(ZxGm&VwuLZuTo z#WpFu+*?;U5s5~@`S5m z(6C~4LAEC1?nwVNrZwL+6LWzR@yc9Lc^$@&NsFr5Uj!#`bi_*DyGNZxo@vU-b;@=s zLDSy8gf_}Ic4>zbgqwtqy#`gGf7HlPNK2YcBuseq^_H-4lFMrzn6z!Qc@~b+*{182h)>)vE?(nlZZ#;$eC)%Ja1R{^Gw5<+AhOv zKEuXi(zh@`Z&v3*hoYDQHVaz@|HzJ6Akjd;%fKxA`ol<`%L^Frtc8B79c+p`HN#bo(TjNzvzLY_NG|y1+H85@zVDvCleaTHd1RPa1_AqkYr(BE z?t5l?sWWji71op^DjzCcp5MeC3BMPn683YTn=hTmm@lt!s0*;OhW1y(YML#zDle*e z5l&S>>t;I)&U35IV~M+zYYp?2(zdgdwRHzct~wtr)Q?VYFc2drx4Jv#<4og{=Vh7GU~B>!1K$@o5gqkG{I-r&s7R0 zmFr98d(!&bPs;jZ^#mlsprX~Gg>{L&Ri?`LyV`ed>B#tYtxB!*ic+TkJta^g7Pp+d6|8qoM|jqd7ht+B2VoLrFDo72BV;UlkJR^IGy}l%-;Y zW73}2_i^+NN0mffQSOnvqUMUpd{i%ZXxL)a!q@f$IhQCIAp`ZUJKE>2zS$BTeUjm3 zUB0sz?p858nU&6ewC`VVwRqJ}QW;el6+ztY+TAd{xXPlb1DYU;A6Xdm>%CZW+9bqU zL@#)|HE=jkFu<#`s4HB6_rJLuD%Q1SyHlOd+)C8{cwr+q z{B|7|L>^7<$x{WXu^Rv7-+mhq!yn@l^D2Ft*P!x?*Au&)L(6YfUo6Ye-=T-2-woZR z(;LYdCbq5BrwVha>9?7ZHJ3KNEOPdNE^FP(Op`w$SB*X__k7j*%X)aME4O)OuHt*$ zrXPR%rEQdks=>f)ZA-0wP~~00ZTh&!z+TggMA>pBa=l#5>ge;aI7~Iri(hIt!r}I| zbHj5+EmwDGSFg%b#8M6xU(9p<;N&9YahkWPapUv26ZG;r^PsfhU+lbN7y zT6A`bc0#(Qjl4W{hJZH5?XvGtF0+OQ*rR!G=bTl!Q+sDTy`AmecMI~Za%O#a-Ge<= zOE3FN&Qr%=YH}ewp+e!ojJ3=rE%Y2)2Twa`pZV*v5P@rJ&au*LBe$!MFJd6+Iky34m`IH4kgCD4u533>3hZp z9rfPD-Z;_yl%n)$xPA0n`@~|S-%_h4SMQJGy48FUyZVB=3n`BWP(=?p8{vNv5U(;s}RSGJ-H8`K&KaXl}x!kX$m_ZJ|&B@h*(3a-aQ`t)fm%u$ukstU-?C57Ii?J&D$vLl-xcPXrzoRgphX zI>ytm#nj~PKCnceq99sZ{nc%kU9zREM9<<2-p^kO`&x}%yd^j$%=~sNb9Sdi*jFVU z9CRIo9GQyc^zC!BCIDZfEg`B_8X8EPz%dpQ8ZtE!I&g#xe58?S{`2@bG6xdsU*}Pf zkRoi5(Ecg&P{YG30r))J^Y=Gu(mNzf;1@CQ@&1JJAEhzDpHTnf7|jH@h9sw}psEUd z>sq*4S~|MDadNjRTsr|yU^}ZAxFI2tvp#%~Rdra7f%@lc^dRmK4Rvt~CkGzrYbSF{ z9&ZQdhkB4Cy~Tk;2TOM-gSUgdqno(56w_ZN#DU|7)4WU!e-&}JlVXBsykt;ta1y}Z15yaafhT&;Qe#l*yT`JVAU zd&Uiv;CAzIbccF#JGwFdUCDpcqiE@7;cDaTZsX+0@K7(*+{wdTiizprLI3&syPcNa zHvjb`N4I~v1$2=2;R-K54*VV34!!#A3V7C9OXiAdN9|K9tO zp4jVx0A_ZqGe+{L-@?+rT8ze`40=rkci4%@%i zaE6CLNBzG+|5p?Gzd`?BZU6r){a;Px;mrTJm;c@2{QuXzL~=pT=PE7W+W$)gaHb7m zQi>Mk(HbWDmw+hijAq0P*Ac`oH}?_xm#e|eSTFrO^aJ?o|A*6!QtlYSb5aXrI8Td$rdCJw5B58aL^=y1M>c z4*HYouuwN}e|OXCt+Cp>Ver57De^HgR^iUhj!u)iO^H!s)l?}+jatZ-1)oNEO2Cp7 z6nArtzR375vmA+ytc(qN9-?Uy3t?s1S4L7RF|I z&f83s=(3mSl_aI5XzK|bDnFx-&HR_e)ggl1j|F?70?J*ecS=uWRvrw)COKQQwzO1D zDu>;wtk#9Gp+_w|CeKH+%is97)Q}<(2R{oYKznJ8X3ACDVV??&tFI zZWEMy9sa-doipSEF3>oolFImY)nvATbko2mH@^=i&8A9pm5=p5%ZC?txwx9sM!LEl z@Hqh!IL^?qWhThM4yLx(jRGw{b=b#7jPzoRaicKGm)P*C-qCf& zz}lv(^kHx$V5GzN|1sOL3}^%g%Svwwpc(O6maa1d)LryN99x+$vqAlIKgQWZj z$slEd!9-@vpC7i4wpZ_R5L=UO`&gW5gd(lS0=hhy@K%*1R@I~!7FC_Z*JEv4 z^wLs6s!3~NX=~rL67y7dk`hxkuDD9>EZNe3`}<0&u=(95y`cZ|iF=_RU0@EX>r=w~k=dXnW{d9Q|Jk}{%Hb+SwrD_OkVthR5h8Me{O4cnvSQC zO4((C<5HwvRmaB^M|k>4dkt0QE1&&ZJ%of$Q_N)1JEj!gOeX2DNIe;0u1QOPPo3&; zHddvmmoOFRXeLcO0ZHY8SPN7#cIYr3kZQ*PnmH4koUPRA^=p*~g2&sxXSIgbWK-y6 zB{hKMeSvmK8+*g~-WU0MVcz>JY&KEk-;HQaNKXT0(N^fZcc)6`pNWy`qssTi{DXTL z3egy{4y6#LHw)E4%Rx7oua`Sf4cn;oD_A$GU+nlS=Ex|WlKaCW4wj;75Y#Gx0?Css zLl!$3sXC*~P2h>J*{UZ(1@gA2WBfdK6j%x-3MecqPf@ffz^zfG3h(d|qe$3s6hRGQ zoS@Q`jkTvnqXYPud0Dy?!`Rpfvi4ZVVw5z8Cs~{edXlp|Lz{{y`)-xYw_wSb$Hd5x^7r&ICe0T!ubfh=N5zMJl7HAMdl!}}@(<;a?LhN9lHtiaocFtR ztM8{4N+~lhc{YKt#lM>gy%8Qb9U$C=HhX39z^^%-qJFAB(XXjWQ7hYcWVrVtwWcs< z?7EF-%jLoCMskJ}}I2Ccb=?G1J-+@3|Q|a zY!Z?l>A*Q7)Nw`<2edYCT6Bnp2f23B*2=2z>}c8a*BP3e(32;sF&S&N4Pie25fNzF zk@VX#gm#yts(#79^qS{L)zs4K&Z$4MeIH7$WW@*>NM;|JueICQuO3UwbZk;30Wrck zwLt-F82D*P|9Jc^cIUINiR&f|_nF0El<6B~iRTOT@8}!TDUZvgt5ww|KlZLWrCBJ) ze|Z0$ERr2MO_O|DVktEPKi~LLvq@K3TWhttdmv5+%rgVB1hygw5?)*yHXZcmPQMzg z1m$V`Nn8%2eqH9uz^P)^l7*(iaQI-lULfjUD3uz$EjS-S(3m@<)6K|6*XHGs_R8Kr zmH@}#f?=s#`ZGNsyopkoSH$Klz{EVfiHguX?H5>n-Dhy(T4^OKxmgb${*d^2FvkAk zqigCJvD0FuMq2sEbhqb`EJR52ogx1@qZqGDe|^d6n$g z$sOrAoJc6p@>f`jN|0JZ7~RP*T9@o#gUk9C&1~_BwgA6ZILRuB&J3K1wwabdSUr9o zJSOL)=lzrx#a?&y+j=VtktE?r6tEsF1;M_!ZH>Af)Xu(eb*tF9dCA^3=AhlIoA9d7Ai$qfAcZz(&W(WZ9ZP^<3&=F#+4B4qL zP<}0E*fb`cx9ls6^V?rz={RJZXxS%m7nc5<%7xGZmSj0-J1(G91| zc?~}Ho^1=4Uuz1NQEPh7pW?K2`l=f%ThA6*wV2=|RyMR=u{SM$Cdw>GLA+ma5 zAXx2gv3CCJv+ePD!j3uzF@c_!^vFkm@tf(jBml;*i47Qk5gARlIbi%m(#e`CfZxV8 zICxs4fp&kr$2%}Onl{ASZp72P|125t0tU)t5TJgTRt98c5=gygt+GmXp+S+no|Nwy z1aft^ywjXE1gckVZ~K!IoM-UTk6u?pU+lBuEw)>;cEgcse}f!JT^F;l<(B9w-TJrsJDP89%%9T^)psrG$BLCj*aJz z@5N|HG2hAwn3y4?;Q>e)>E-9+bP8`2@0wW=2LtXAMekV*B|l1IW8*W2c|n`+RRw1| zlgbp}O`sMpaldr(E} za8r>G7dVZ2gKNj;;Cqvz>%G4L;XPe7%5i(PTAJ4K1eRGS_^ZU;VKKJE(Kja>2ex`(B_ zn=^L+CS5d*cq+G#Wxw2J-1q)57vOo)wsQP5b#!#xT|iN#y8@n#uLu8GzGn0x_VEeV zi``QDG2e(MQ-2($z#Lop-34{_;Avx=tZ}f}iAnJWr~Ie6w+VE0ZV_F!mx8dO=>&{k zNhZ6#D;=f+`O8PoFn|f2C5eni*w%o<5z$n&0D4WfD{p)rP0kG|UceUgI$GieV9LZy zkcOtFu%*q>QY#((-A%3AMa;^=%{`LVB0zlc$a%=^xFZC$%5IjYY?*5i zARzP2VW>ILkpj{`CJNtv4nH!M@Z2ZzFU3E?l~|JFlnzXiEk;|b919<0%DS1l$b-Y- z@O!>)Y?I?FPPn{U#|-6%K-wnXg~O&P@~Q{%rzS z@f~eY3Znyvb%wc6cH|Rbwg3edPE#h(MW#sSclYV;K8U3b% zx`hXi&re3B-8K!=x7&DCYn!_0HYNoSts;5MOL@6=k3I0!*`$^w0L)x>3epDww_1U% z_qnInZ&9OTU`!6rGf!qXLrATft@Ab09=J&JaoKX6?eq&yz2Z;pPViZNS}7DwN8Qes z9bt91xBdrre1W&#of7>`ofcS<5jA$Rnn2hoG!QqafPO$@(&%sqAV_}wJf4o5`FZSd zOd-Hb=8w=N_h8^M&U>~FIoj}7v%GDW^7C~LT>2(H1y)hp8kD*L{-ar9r|a=DgH0ZL zHMeHjBYWk|nwj2(&mxaBaLJ!0mY#1eMF{rvmW^{-mz01(Z+=hM>B!R@I^z4EDY++%A_9$(v= zt4V#b^k2~A(I;tlQJ8ptUUZ+-DC}(gglpS~9N@Asn0ner9UiX9_VOUbA>pr6mxWnDS$B=yu+sLZ}{d0d;yNue&APQjfjng6CSvCjXUo)W%={&}z z0TErVHSIqH`##X^nS#C=0F`fMI#Cna-KcB@{kh2n*0gr!wnWQ}FtJ#K>r=g&L$vM63lK1IJx@-6KdYUJB7LoDPDgEVa42zGzSSwm*2Jqb!+tBcfX4`KAx{nnAEf>q#rbBgyb}A*-F`8j0O`1 zrEpH;7@awOuT>x~GjQ;FX6SD%EGB&jXEK%EkP~Z|4SbZ|Rmw!$IObYn`9-zT?Th8f zkknpfTD*~b>_@=c^FM?(&KOX`r!K-kdre|6)EHQVGB)JFL`{5iFPl9b4k9?w_=jiu zkT9M~UjIJe8p#ylb!T9j5ZW&cDORa=R=a(pjHnVEy*`?TrOO7N34h&$8BzKR7`|I; z5*U-ztv2KaM3ssKra;;Ne}E;P?!qc;ZL)!pa2?{VpW`I`ypOn6qJ|VTg3Amu5YcUe z+$UI~2V#-Z!67c*(g*@`OdW|Rvk?4?4e!~mUD~wY-uIoX1-imTwIyZ^D_2-BAqelP z0qs5pt^gL}{nNR(ap|+kvQV_esjYAQ_xCqWJ^(+!<E!2rqCE=~;8<1Ixf*`Cl^ z#10@O_KGghkiGl3%B=i;DzIf1rmscfDqs1mruy`UAd#hY;}6<&5hxjXI>ZeUbs3UE z*wy2;98gqN@};~8@d65}4OhH&pKv1zU88L2>%m@U5MH7pQs0}c;H9LE*dSOEISxd6 z#dFAxzt4UDlA5Az{r;HD$kiB(UN2=%5sesW~iY5Nr0`G5S)3P z1%mYcdfdebS16;&`DHf)A2+(WzuL+zoZL<}ZuXRdu2C)FUIt#=T`c3a(RU?>xEK&C zRzbTl98TXylhCQHJfmz^i_K$dxNARD`LbNl=Azn{1_mek9M!O1sCu?I3A;s1#rnlQ)rjsNvmqLF!`>Q1NjJI|;BONP^* zg&`b2(=*>B z^juqstt_{i-)Q5Qp?gchk#L9v-CO&s(~a6A>&hI_P3~Mt^7e-{4DaH6s=zN+?z%B3 z&4rb`%OFfZFKvXNE1mZ*Qy}bg-Wtu$2)8yg>|~%hRJevPpNCVJ5WyFW=YF=dv`9MS z5gH*|_}!lL*Q$~{KLJUsZpq{$qP=w61Mj}rOcqM#KKaT#(O0dKI-9vsmiziHr_NW^ zrR&11{p0&@=r14vN39ovF(4e+Bb1Rhf3v$TwuEXnQ*!Q+MAo5UHBvO&dw?jA1}px7{}FqetT!;^-LZ* z?fFGc86s0%Qu8FRc53tu{aI^E2;i4LqA{_-*CK?3{mm1QWPOs81& zc>rYjrl=QL^jN}kDljV#4^n|wUBUReGvge#L$+Y0kVt4`_u+^JsvYZceCoKU8NF zh}W=m;xqxG7Xr_oomsSb9uvGpXIx_Mgb-gvkCpUmYZf)1dcMfSsUvW6bF*CO2x)58 z^w$a*()QOsssC*9`|t~jUBF)}6-oYMpXBQ?*j5)9vX1K@Tc zHC>Omb}j$-EK!%dy3Hr$=avOg{_-z-S;!$(-Cd+8&K${XZ^^)kygzlhKfmRJuke?U zCyVUQ!9=K>mP+@AQoNoAf^b6x&NNQQgxyV(YEr#3 z!gze|Efk8xV_*Oii`UW>+D;hz1g9QRtBvc{cuu?!47`i!Xrw1QM zU2o^VJ&$^uefJog_vZ%?FF7OzX$V~|iNV@+4@|~w7Bcrq_~%o8f%_10X3C9v%WIFK=|hlLW^P7e7h&Gb@N7n_T(3lD&QkBu zN^7|Lw=o3zd|>y18)v|opZb3Ad0ACnm9(xIYv_HnmeVWIyV+O%iK3e+!er{-;mbDP z4i5nwHnLIV>xn^TXcbv(RnRr-ldRIN4>@qo^uK( zj*a@X0UM~ux!5rw;LclTj+`OX=xfC;@^QAjZ*co+LE27l;$`kH^ZkL9Z79^0&DSPl zSW&$>+0>)T=fD80mDJjxKlg_8p^6FdA^%naK2!E;PsUIojw|J6QILr2#nsvg9SmVuZX~9ihxxm*&K!C;&DU@P zM7zE6=ltFTYIgSF_#BLJ=(yx>z~zIiS!*$Jqk42fd6vX_lm3r!N3`yr}Gu{ZLgJc6~w=y8ufOiisev1#t3Kh+iy=} zJn?3W9{`x)vg3GOI2-w=F>|v(fRtu{Dw;-T*%dJw*5Xr}1Bz;%nEJOo7U9tk{*`X* z`Ee5k!fm~BkRuzvdPBVU;XRGWXpJYVsr?~`)kkHmGF=KfKawy0#j2L}2JCTscJh@u z{!Q{Xf9%6Z+#`{O7ro*aZ!Bg_{L0#BQAZUdP1^h$g?*rdDNjVdIC)d7`Kr5DH~kQ9 z({g^i#D1A2=2lqu1!WGZkl74CNg*hS4b)-SpxSC+dpuug6{Iy>9qP5@F>A~YS*SvI zMtkutNgaEmyz9e1>W|@RQmN+X%g9i{EYGaOD6AJ%;BM#FC^~Egyrx40C;Y8UTRdg! z`%j~l&ta~A9J5%)0qM1IBkh&oIK55R2p3!ncfpx3XZA8jZw><&3`qboWv?hM1B~fQ z5z$B4s2F(P!a!dl+9I~X<~v*$>Kv+^SLF|+@)j{*zb<=NSkKh3s=Wh0$uOI!#|rU8 zKwJ772m`mR`>=6OF0;P@z^4oQo}p9+B2}lRk&fNIq(| zVc<-nT_mjsL0SP5uSGV*BADaz4*R{~z(<=*!nYmv{STtNQ&#vX5g!qLWp6qn+KsZO zoBDmY1CatB5~#vNDuC#@aeOB)-ZKSA$jXjgsA#MVs|j^Ds0ZqVp$+ug$%Gp3v{Hs_IOxmA+}sNOw`xsY!c$5B!PKNo;oYapiIGBPm&6Rh+ntyw`=rWP+uNP}d06v8D8I2WJVNhqP>Hvw+p`w;bbefUbKV; zBmZ6vlnFWKm~rT>Zb#rd(AkZxXQK^CMAAQ3s{#n1u|)h{i$f`4>**lZ{LRR&Flina z{0!i)fQOCD51{I3BT89O2t}~KI8A7o9RegC*&?1fI6|UOClPv(~9UI{*Lu!BH!xN*$ zD-5a&!HShJM%3gJ~U1PeoGcZtW)c&)$_4Kpv zwMUo4oSl6ed)Kj3d9E))*$O9P0uP}$3xBIDU;DLrt1D}`1G#6Ragw%$vM6;#DiG+j z3SpWzU>Bd+atvp=-f}eqDA~3P=3&-Bsa$gbFfB3%VNHz(k|9eTT1r{-?pz%T{`NeE z-w1ORqkNg~!=W0aSIRW-s=x|l_1bkcoWgd-fpThaU|?KJ?rZQ|6tc7sM_e+Eu>H55 z$3Mp#uA-HVEy%#DC|Zr-T=vG#uwW1c@|ngtgeHTcH6+E{?CDE@)OjEh!fSKq`8rJ7 z0|UzZBQa;HZM#1$qf;1}xegSKo=kp3%Q~i2Y!@!~(T6M$q%h5ku?cj@W2Xh#hHhiQ zB!xsP;0MlhclZHH8aVQ_iQ8_Ryt^bM?-SS|dz?_hEg&yffd5W`rAq)OS+-+f`CXI- z0-{H5bYEV7(?T+@$7d-oMZ;beOw(dRx_QTtaLK45uLt5$o|d|#LxTxS)sJ`K9Thx? zihf0%@;J#TE3LBFAO2hf{VB@Tbt%z;k-rOo@{<;82a z>@PM}Z_3Hl(yM26xAxtDBzH-U(7!}PDXFFNOwShRZH=d`W}_YTUj5q2oEJNdzDOP? z;|k-BtVYNSITFR%O%;DWcc>jLJdwN>p`@ODMOc5^cbVOER45&BPyQaUThZ<~U!#hF zPyMB$`+CkI-UgiMO(^Ru6lnbmoO_9n%1Ade6Yk(`)h$jP@clAiY(c6M2gYGxVv>_) zdLGMX7{-hbaa+$0KJx9u&!JmMqiG)sygS#wBV~Ksk;(_el*4z}QTJ@Lt5)9e9V{gN zL9ts$VWi;m!mh`E>4PDZBp=$}gx^YjK0abxwK{nR8%r+*ac+;_ihF**3%Kx+vfmnI zXSP=JeaUmu!46lAM)dIB1wailm z+~D#k91sfRmjE5K;FX&kJWTYh(9RUbBlJ)NZ_DvpPpnz91RQhpnY2?jxUZX6Ty2ZE z=YH`k%Qb2&Udm58p&kgl@N>4A+AfSlk~9e-j%jig$p+yxfKU7O$5Jup2K@e*<`8KN z@a!p!4Zaw9nufevdjI2)jy2rSEyM~|k5CRd@}C&7zdUL@gY4(W(7kV;L#?ul&_-V} z7=*KVt2Ug^yb|J9E$fX4u~EnK2DHdCmcyn!9
H;=tT6&#qir(CT35+7gu7R^K` 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 z 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

;v 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 literal 0 HcmV?d00001 diff --git a/docs/img/non-cacheable-tasks.png b/docs/img/non-cacheable-tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..7786ca28c058d5c53d4aea13847e6b622ece6db1 GIT binary patch literal 117948 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 z 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 T71b7r;NSVP%4af88TtG_8{kQH literal 0 HcmV?d00001 diff --git a/docs/img/overall-build-process.png b/docs/img/overall-build-process.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6a4784de1b4672799b35406093fd898ee9becf GIT binary patch literal 92489 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

$m3k4_=! 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 A`Tzg` literal 0 HcmV?d00001 diff --git a/docs/img/parallel-execution-rate.png b/docs/img/parallel-execution-rate.png new file mode 100644 index 0000000000000000000000000000000000000000..941d188060432027cce961264b1bd631b967d6dc GIT binary patch literal 82559 zcmeFZbySt@_AU$vf`Fg`0-}VZAT6CrNrRMh2?$7cgNh1>NQby|F*o2Z=Z3#J-+e%aTsI4dY(1cbJx6QT=Tl|Q;?H5k9h?X2?^=EV)+xZp^VyBQDH6 z9Y&o)eSPT;mNsuMhNQQ`9Sl?gtjm|xtQkMN@IKFwII4k^OOcq6N7uV>R$V#FAy-di z%I(vI!K3Mes=b!x*p29oWr3N&gW=dcAtbs+tz7Ois%OcS!WjHkcZ|Q*(z2|!B3&e( zO*nHlGLq8R_c{8RE}El}rJ8F#HUJ`m9>9>B)zGBjk zx)h1Lysc#HvDO+<@jIE&g!75+Rxg!koULDm))Aknn-LZJsF;E*Om0^if{)aIeXFHm zB00gOL5FVO#qOPpjRs)?Z0z~FbYxu;<^2j&>Dig(f4|}Pw_V5G(ZPIU%yN0;% zEIyT-w)1#AY0iG<2`!KMY<=*|w<%HCJo0)j+YoB?i|ZQSE^(TNl!mO8QH2?GY(8}1 zSNRk?(<&e6A3MpfFEdLulO%Cg_Pc)5#3j?G6<$6KBW~&0@$M^8JVJ|V4Z%6zWdku^ zuf+0oR||iA+ZcsMyAsH}x)%Euk1?LPWh>&xC6lL3GgxegQ)@95clY|WHlM_3kT40= z+_Kc$r8+}_fvok(kWTgzQt4ygQbQ7b6F)-9r#I3{u`j#UpklvzVImN#Z(?YI{;Ag^ zcK7OVd;JQ9Xf-bZLl?@YqpjK5*}1g)ZGuRz>fh%~^(Z$hpGT@yLb6{Rm85pT%Uvsf zDmD^#DFOL>0v5Ip@kbQLPv=UInMbiuZWFygS<@r!H>Ynvz4Q_3CNhKYMLJ}XPnQ*t z9Ulvfl5?ZH@)5T_tA!N#nZx?b;8|QB?9C@?dKm6VlowFPC@@8RZ;=Z$5am5xB&V4~ z-n;Wz0TmyY`p%8l7$JA06I2w=DPyV#m%qC*t2T>ok6ec0AhPpL=OL0SmWR*9H`twe z*LqRoklFPwUqzMpY&V9_P15olYs|r#N9#Pl*hTUEE}t!4FvXJw6KoujS{4>nA}$#unkzLm4-6ypdkpAV z&{@yF;cS+bVK&CtxF-GC%#blR`#ugQPV{4KZ^kbX`a6d52F&_ah6lN1*4$UGnfTk) zp^c8)n3mL*6qYQNxN2c#ll*v2Qa7=7#aX(7PY}Dcc4jUqbA|GiAwjzN(CM1uq5R|C&OO2pgc(0FMpRD{Kew%R z-~G}1q5Z?!eZ2Rk?|7u`e5P@}OTT@haf^|QF-|qNhcyem|6`G_aSPNc4hqDfIWjbZ1Wzi0;b2zh#Tl||(U8A>J7AhZnV7>nmTb$>8AZt=i7Fhyw z_ej=AvXFtE*#(P_9SOsuxfI`Co4$Ee()Y33y5Vjs-PebHidpSv3=>&9xx1Y+Y|7Up z@RUODhj!Bh(lE<(%kre`r4*(FHPac#8TT1?8y7d*Ov`N8Z!Ar7-PFU92v81?3RsBv zm>iniW?OEwW4~x0IhQ!s-MOL>oONH-MYT}1vd4ZwZy~%VuqVfa==4I-|l^)Xq`;30fM_K)#8rhos z8u`{Q-!bD=cox*3T6_(8v3=KU@~}Z9m@Kj4eUF5|OU{4@@!~qV+Gf8rzdfP_Jk2W% z0nrzWZ!K$77+0`V-9V1N5c*L_-??aIkum>ZhP&m)TRW5Nxj|pMoaWA$NY<4__vF37 zy?VS{zg)lPm#S@RO1cNfsO0XcbX*AfKG5h^yEASzjf*jemi&0;+w!;MZ_M`wl{k~J zlU!3Gl5sHmzF>|;7kC%Mnv!+abl@fh8GkkIGP%Tt$1d-uEH;-|baN=vSAEDp+9vpZ z#M0YJYPY+WsQTj1Of`QuZA^am<%5zL&5>k(^h~f?)Q;)x=EoCQDwq8)J2K_nFEDQ3 zaIZe}2w)9x3DAt3WmeBka=KwYw`|mwmt>TM_6*Gz?WpM}l1%HiMsU@5aX2S~v|5!e zL3w(qLaMck{)qgsQ1|5gK^yc&xO}nvH@0$6^N~(YRQCLx^ z=9PPtd>Gm8@NJ>2hc9a+7rFR$!B~rUYaqI`iqwYm0jKXHv)<-jt%|*)h&|2hFrKib zL8*TFA$kT}CaZqq0*jiW9D+20VunhFg^YrX9%YZgmXYE78gq#ux!720zUswG%Vos_ zUQQx~k`8^OgK-rCt=n~r79;h8YWcc$Uf+(b&_&T7pi|-$b#wpdy4oRFP<1&wya(rM zoZW8S#du0t2UUmig}E(iiO-62?UB_q$F4K?+j4s*nkO7+U&<@TCdJ*f^uBVL1Dhj- zv+?bCbeTL_oSB8Axu8q`{-zK6z6pJ6daSnBEBox#!P&jTjT*-Bh|gFz2=_H+iUli( zoYqtaGK;dMZ%6Vn9cWkewwMWxj1AjN`!9qmsYR)gmW*Y31D6l$7jE>1v;S*^Ho?~!y)rr zr`V`zs2`WV5|86)>}h#&>0oNF;c?Dx&eTYAHHR1O{_(?GcJ|86;nwxZNRM&2d5FD> z(UB4o`h8r_bmQjJZf=&`#ydfpKt0Bjf4FR8hmwHfV3_w}2<20I#5o@6+edGx{MS)F zR#v*pn2p%P3L0~71|`4h-{o{QZryo|vx*ztwkouFB#&E{$LsC2?}hv#9K)*ZoxdD} zul`2&C5>fek?7$)1`;ar6(lrxhYT-4WRicq7e}T;I`i{B3KG(DQzX>CWDrk4{Je%2 z;yb_oo(Xw|gbr7i;N_fv^0zd4Tf&*Y-y?6rXGph|L?k8Quacpyk&&g{Lo53N*(p`H zanAa#x*ZbIWopC=S@Is$Dm?#(sq%gM`?4~;hE^6#`VXuOjF_A)tP#&a;&$lRzrGGv0@okf+gtN8GdnpsF*&g_S=pK}v-0rpFte~Rv#~LP1f!jcrMR4>4XhmO1+HI5H1w~ZU;Q+4HvONLEbaap77UOX@d-04 z6ASado(*5+N8IIAFm*P1q%LY|0dodz2y(En@c)$m$0z^O;=g_K{{MWFjpg^R{@X{V zzp7$qWGiB20d3j~{?B^-)$YH4_}3TtnGr+(x2gCw&p+?NL+se+!i$mw$5Of!=9@VzVFkEPz(+I(u?@cE&9(F&*RYHe4yKX_a#-wFM*5*d5wViTqMy&#Y-$0 zL=>xPV*_=ZV{;OoS1u;zN2vBN?Nv{yp(UgGQzuXH?LPE{1saCM+$Ew z6b$nJ=U*4>e5CN(43E$0?f)lHc#wuS3NINd>IGpWFNH_LH|VblkiS$U1-Dotdx>)JiE!Ot30-% zxJgD$5sAl1130AobQ{y(r8)VIHanATChETZP+ZK^E?2GEpJzzZEY6N`=uzLlRPMMG zA{KCY?kHQkT&mElJF(=J$MsW|Q6UosY2d=`_j{id?)fBQ&Ti%9QBhL9Pa67KG_;+i zNxic=hO)sdi+t3hX(d}#t@vJi{VSe4l`di7M!N*rw}qVQIDU_#tshM;GqI8G*J@iP zzlA!qS4oD_tnW?)El7WOy#GP*{btp^Hgt`SNjCn}JYnE72qRbCCzU(Z%P?h_bjf5) zD?&$PZEZ1vHWiA>5{urC`gxv5`w#FiXC*NmPbrE4oiMV%v)d+(zcnF@4>R4AdPNMm z(rstiwp&GwfafEb=kD!i*u)_-6=^8@K|;rL@t*r>%IV6IyiUtE!x_|C*qL-rI~0YB z@F0deQRcsYzzW7%2jDw(VYS+s_Yy%;Tl3vhLMIzS4vJ+T+mGhty+U?IymSdORNM-q z=o1Jz1z(-kI)!$`lQm)%e*Yj26EsU#ujXb#yxVeVp7q!rfrRqqGU@&z3r#)i`d8ON z;kLx~$_TS|nSJoy#>@hzFG1VRVjty7#m1`-GhtSPC5rPsSq!Q1o@FsE(^0nlrl|z8 zn%5MHeNRT8;7&$cRRuF@7R?$Qw|Z`~m##N57`4RkpvCzdAMK1Zh22oH*DW4$jP6QT zVd%@zxRHZ-#Gsn_I+o9g=EUaHH`@4{gu3pz1(rj+eU2kl9`N-Xssr^>+vFkzLm}tY zga;-j3nmr1&SSn}$2E^1m@NK2aTs6aV2Ky+v^>4|?@rO@A^6G2R*q(reWOV2lz{K% zJ(u@d4{0Eb1N0J}^@$STa7`=7S6%MJDjFCd~A3Xj;Os7t#ajNK%@jHJUUg^tEtvFaNcNIDbvTNay*xy=+JYmWCt;5Ku227xM z(_}~~LBH*&r_`X??jibwZTWe5557D-=c+Kzxy)hK)xiEKQrA;m$c~?uR^sgWD@kha zGtQ==*%z)K`k<4x)h@i{FmJT-+#umu`-*1-yFStKq{`#KacE|#c!bF$#^%}Z$VdGr z{Ckt3uDU}~RZc6zwv9JZXCLp?lX=~gj=0%A(-jng-?mb@qobJ7$j-)=BoRbvJD-;7 zPydNow@NGM_SSpVqKxiMGikS*gSGM6GUqH+9}{C^ngedz$rsqyc$G)uv2_Q0Hd~~HX^Ds5xkfT~l)SDAy5HB8K9W-t9;tLIcHeB5*k78Dn(9thk#p-KY8KtJKo;0S z*w*mw47CND9L-`m)hvxD3_-4UJR4ryjtfm*@eI_WLk z41T%(@XV*p-?o;|M}#eqXY)rXyAteLRq8tJw6i=km7bB^(aP+#m|MT8*A0_-!fa_iP?R+}Jw4yOl&-DcdQ-ka z$i{rnzSvrg;rnx3vg{GnQd=XQjb`>_hlQRpg`DAXz0W8DWSFz()IBMG?_8J~SWg!; z7op#0(i;(XRN>xHM%(Pt%*{wFqSwh7h}@ZN7unyOdylT&i)p{LxbbzP*{WhqoM&gy z4ogNsfX`#8zi{6fEX`JaS2stO<614@f=TKE;hrb|W}8SJn1=#}Hd^_(n;_D;LdyB* zzRy4dVh^rIRv#ueXqMzdFZr2&TRddc4sc-d(xRu*6Q2+a@N0he+AR|46EYZH5wYIs z$yBE#CMLGsUDX%BD9q!_O|STfQf3zBtXk%JT-vXe(XCW0imZ9fZGSE`S*Ow!5n42X zz1l1k54=JR7WJ-2fctiz$@+Kz^St4lYC;BUx(b-0)p_FOv}pQOT!du_i6fXzV_Q5u zjS`4y+;nFCeHw-D!R?Sl89v3!ZG=o(ba*r}cVA_gcBZV)z7L|&B}6DT&VE{I9DViC zl2x+hP?_y)8^s>9KRFetds(HyvL`bNo0v^>r`VttlUTsDU^oYq?r_FNtVe~lzamPG`wLSQ8!gf} z86RMlS!~8dk22RpC%RM?=ih+3sLYs!I~%wy756 z!o{=~(cCPfT_K;Dn4?`@wAhy~5wA9JZ$hE^Mgr}(-rK*~(+hOTV1e#EZom3_Or2m2 zefBL6+k8lbX1~>JTX_92uZbzNiMg7;HMu*#RcLP#&qHSDj`q+te=dQVu$n~|=60G= zY9n~UOIGdG-RYYM7h`K{yM9%TdAcQ*!K(VmF>dF>__i3Kc2dCbeBX2$+9qsw@i>=h z;-OZ%Rsq`d``JZ1!*24&hciO70Vnfs=4V2rnS!O6E0veaR|Jn_oE)?u)Kv6nOSnCs z%zwCAW7{D~J9pGYhOl6s@+-rY4rFOFy}!GR3onXch|cx#eZMQ$J49+gW<&%AIFS6P z9QP_WISJ>ZHnc}uTAPQhT+Es1D)wqC-x?b)IY{s1Jt{3N%`pnD?O z7VcT)HEn^`BhYvGtJ7S+FE0{`(IwdIG@QeyvWwTc2_H~gj~y$RVn3C*o&9F|9Wy(T zNt?Mq{P&ds{NUGKykv1Il>W7Il~c|_==`-V`qZZv=t5z=-WoX(~Y+% zuH3ISAOG%ey@e$a)?Cz&^SAgM3B?p_e=0S-(izNIBZCRqQ=ejlNy1i)>UGBZee}Yf zpg((JUtDC71+GfCo>DsD1S;r@bfPH9sV)}4?aoW#X~=&X05WPL71(x}M-}IOS61@s zPq~Km>ty2&cTvLWRWQ?N%T70l5{?!Q=`A%OW=m-tDUpP`Th231wnjD&Ivs*#51Egon-%^ zy9zPh-DsN-c{PH0esHk8Wc%eD?OjL5B4zNh4SQF?)-~A8izZ8j`}4=UW<5JkBBiRT zn!6OR_yX_r!k==xh)X%l`|83%_Oq{L5I(&%J|4Z$cB;|#cyC4;wq`PT1DBSi!BVBO zxTG;N_m2s$@i~SKSe7%kj)CoL)U>KpnJskPUc6E1x^>AxoAW=f6mm6MCPPAo$|NL- zC69(Hcy7c82UCEnma7t+3R9Y_I#_PXzvI5QKDB-@aw6E5@-ddvqQBvj&zaEFuJny} zBG0EwRlmRGFgiIt`o_65P#lST<}8(N{*yn<-S7ULd^FYD0d2F?Zl)3Pw6wx)~GVfik-Cy9%$9z0K!0DpNf6WPj135+eLZ_z zj*BMh0z+#9Ak0Y!y2i(OVyg4I?f#=OI#cPXAPaDDsdZ)bcBlA{p1*RdL8Q`VLj0)N z)?qaz+A^dimTzH0;?>n)zU2~;6 zcJJtT9XTi#tE#oKsugR=^S8Pm?QgL?>Sa0FcHNqv3!hE%FnaKyVe5x({LPXKJLpl! z+C=?=vAn=m*aIV@EsbW;qhQz!v_U%yKjd3@X09H&9v|+p znRZZBo($Tx`nk#&NX@mozz)aqtGmTk;_41NaMIS*D&q*Y5#v}9uSuXvdq4mH+WPz*P>e!nQfkHaq;=Ns%v-Rk{07q7X0& z4=WdN|Jbt-~9P0QmNscSo1O_;o%a}+jUlVyenAWwQy(?l3Qs7kxy_@2oJwe zn0cFxwfmY&m7p#1ruucm`d8iY0RWjwLVAVeE)LFu&jnDJO&gV6OGpH(!VlWtOH92r z&koLS6)gYch652I0zIkEsaThq1MF#WxKdL{Li?I>PWRej^p$`sN>h#Dp%aZGDHS<4 z5+c=J@6;=Pdd@t;T^Gm`4KvidZ|A^;)N!N?tXF2G~EinHf2O&Eh zC+4i;hmO=06hZgBeNxJ4lXz%XSB5C~2xT(x2v*7w^EIDiov&gaOnL7$GI5hs5HQgq z3LgT2p*4Mb5a9YHFe);9Uqx8Raq$fTECNrPM46)+28iHZBIYXlJh#ui=Gv}(da(~C zwU>-i{9!7n$DjNBk3k7e2CAUh6D$XkaLr$LHJepobq7!QO~kAgOjZpdm)yT^X_<|H z_YzeDX^Re5(sU}zbYh1AH50{CEcQ@CJLuX;8z{_}@XHc;j+1CfK-MjeEI_Zmzoib^ zpc_9?Gq{LPZngLl>wTW4cSSCr;L8>rWZU}TUKTbtP!Bi5nubMCm&L&Il=*5Pz{UBp zSqFK&?w0`Us|Czi`oV!Bi_mYOv`qkH>5%UuK<42}H|bbjhxHgGhOX|c{%)zwE|e1b z7f$nClG)|UylG&iAOjds8F~!MKB_; zT}Y!s0G?eKD5Y&7+}0c_(k2+~W^d2W&qp8zz8nnJGL=@~i1T1q-mA1bA zVX%4P!Toa%*>h#yxGshc$U|GWcO~oOkt?aB3T~6#p zTpLEL@)E2ZYl~JbGdw59nJwD?BDocPT~x*{weavRfxNL2D|Dom+m4_b6_x^X_L)#9 ze%pC;?NfPZ=}5r>~X=TGM~I* z#*kvAc|lFN$?nkT34eNC@y^?F^hv0zB<5_|l|@PgHe|4P(ws^f6c^%4K!y+J#jLE4l=d zXldpK%H*pJiU%lXVJgqeYIV3kfA=o1 zA)kS9Aloy|flc~r9AxXyP|AF8<>skxB&3>s3=;l^>b|?q*e7G^E9?yO;~cSxPX_%G z%r#Dde)0XeU*uNf7fp-oD`Rj8;;G(b->?CJk95W&fsMr{QwxIJ(&Py3`RYs-l60U^R@f+Z4}Jc@~`vEX8t5XY9{7)P;U}1UPv4>y7!eYcV!NM;8T3B#L-YwLzpldO>6nHG; zFb?6F5Euv7uW|fZq219Woe&h)^s@&TVKNBM5%N7u72_!_tfPsf{2D0YIG(xjm29Na zU-R{kew|i?zZ5j%|0?MJKNXbV=11cV8ubDL-$z6Fn!K@&Z(}-=(z*b*dn}=N+@vVX zT&-W~3NR9r;P6!?;>oTE4N5T@h)5 zwRU`kGY_ z3wnX|_|t_L2&7`Lh|hpP#ZLh?jOBT?TV=8P$h^8#X96A=}wUKCtZ(0);3-XT{bQ;z*f<7W;41cc)PnvattTU3g_N zuxYlbdyn-`5g>2a_%F7^Q3s$=Zb$ZC5%VRNt`e8JM$QcI7n}q9dB*!prwB zpgtRo0sE`fK=cs}I)HXt52FPXp~d$lG6)PK1oW~#J#UI=q{OR}E}ZX9wmjOeeYIh2 z&9`$+vslVF@GaZIiAPay5ob&itTX0+ZJo{0>RMwc@C2RZG0Pp?^q&lu83kMwuoX?= zKYVlRdm~e(A4fg-9~`v*+S+RPP~ho?mr6(8jdk5h0$|CszSQo(@#yAes+U{9;rgbd z=|J=&JqP3?NR9GLJ8Akzz2mIEoC}GKWrQe5cA?N|MW+v{w3gAKp-PDf$vPSOHP1rA z!>Iv3lyb{j=Y&0{b9qSg+RQF9 zV9h?qxfXImDW&0XZ)0OrC0k3qMd-wRZm8Vpo!A;s9U6DnCX8C+1YCxHd{Cq;or=&D zCFtC+LVtojSiRMw>8q1r(i+#1p~kHEBk*4#9Bf?oS4?&RQqVQ22u}~tDfMx#15R`cK!|1iPIQUO$R0N7kyhdOP^fR2r{VY~qT)%=4V@A!q|YhURa) z%`X!0w)wGjzojrGxnRgNm|HPzR9<-QO-16#idN3twI=f@%;V1$*zPrS@t>U^Y~$fHZR!hupu-)rx|uU4!Zr7qOqA3 z6WNv)Q)Pcs8&W=jFU`!DFwuXwwpY=c+FyC_)6U|V~#GpX13c;>LPAyZqE zEr^e)Rll&;MP9*4z<$*G);ZF60n;{-d+#+0`7Iu~>uVz)LGirHcOg`cSCZ6ocZ}aS zT_M}Q&#ZhlF(Aomq{>yuVQcR^*C07$7wz?ULMd{w^!X;OJZ75KOs|`EaDzDxRq^LuFnu`%bENwg?auq^Ln1rE0|tQ45e4eQb4^^s zphLEO-inNp3_+2URUID;c^8{p0nn0^P2-9)$m`Eqg$L0tdu=5%#dz&+sZl3>xL262 ze17>-_GO8gv$c*Y1LsxwrH2we9c%Lu%NvXTA>(~4^*w3qZ z51#uGIy?@*!&l0dW;QL*RxNqgfakD)LEP+3)_?(73(S4L=0k={ih((kKN(nkWbR{Y zLz#0K|9g3CyJSSpo_H1RWu}>tGADkev)jjo5Esy%+%VVGR1rqNJjCqA4>O@|rgr7l z!`JAR(8c|zsrgY^t|2O50rkuPYsz#FrXpEA-YO@wdV#LBQ~Q({GdcjJ>)4$oCP}Wj3crN9;V*scE;eb%iX1 zia0)|d+Xr0_>5NV>bkG_RzQt3(K0JLPAS{6G}|*{2}luPP)(RMNz5>LPgsO7H+cZU z9X;9vdP`%XSipnB-L_ZALR^TF18N*yOqqNwIz*z49 zWl#dOXmRjHsBvq^9G0LI-#G8*#0e5NEqXPF$^>Cez;aH3u!cIRE%Hr=covs3n(!=? zyn_C!xI;xI1c7cs9fcWTTV&(hmU+HGW!EBmr}}u`T>FC>a~I=iG?!I&(DS_~D6Vhb zZW0h8vc-u@4AZ7T5Q@m(B=X~fP=PPkAj$C@z&N!}+DkwoOD@uin?{0w8b47W2?&tb z7=(cU7eYXkc6FKdbugN3poJ&w$Qvn?)|A6VmZNc7-5hf->4*BfkK% z3ALd4i@ilA#T6W0an0JfHGTO6n(G97LLGb>0iFZ za-k7kcD}5TqC^3@;mcxou@%PEiqdFLFX~;9cEOlw9F%B6T{udP)W;>>>oR`p36rMd zQnOvfM?!5m^Y;NWJX`W~i}rDb^pLmDQ1~6!K0Sx`VC;+U{v9aZMVNJ`Q^)&w))AXD zKut+!mK=eU_2n5!ziS1WH)p= zvzU!?<^c`19bN0W57~4sj!-D`dze>o?%~VkFt0shChJBJ>oj824;a8+_{w`YEay3} zJhVQa=`^+EyV2Rgdazs8u`(WK>oQ~4StNT4a@b4_z{I1f9=2cq*3j@85MQd8jYCx^ zb+odp4FE+D;qUhgd505jpCJaCO5C;|VfshU%~?fBep-R8y=kXGo9FgG)c`}JndKZW z=uzgW-DTGi8rW1)!`{~Pvo8R$SY@7Rm<$9{E8biBVFDC*0{Ovi9csfh!%eMTeOQgL zQC53HxXu{N~^qCX@CEG5$D*!*Y#CdKcb|mrsI-4EPwQ_F0oFz)OKpJ zxy#HtnLz?Tb?kru zv@$2oJUcEcTeTwNu}9z)j*u1UYtld+o^0V;k%_~yd;VWDLt(O`HAd1#?jPq52Leet z9orUSTJ|HB&M)*x4-|bk`xB+z1hDWMM3hFIDYE^C2%vtWRY(^~uvDkPW~lT&0MbZV zAcSo-=eh1e-HQqeg@XIDlu?`(Z#{$PV=_=&4Wc>BRoAs3rb7fjWx5V-J6yxgBA1X) z!OX84zSGFQ-4#@selGkFw)n#^dwj3~G~%C))8BzBd}rICE(4qE4eDFdXHX(}+9+wl z3hu$+(!&(ubnqYaw6Q85KMfxpY^84qwH&Z4g-08kpl7tWNd>XDN)2#opZSIPql^$8 zE}*N3$`7%zvm5DJoBMoCQGJO^Ca49(;b?BEw2Zb;^o^wtz*k$1>+NE1?=I{z+xVJ- zxjOG`pwud^R_y;@1a{TeP`q@jWR6#l%h$J_ov-D>ZqeBbVA@xoQFnMHKTt$<{ueZj z=?Ty@o6GtGIHcH$_4S=}BvVJZlNGRo)c!g`1uLS8mJJZWXfHdlscUgD= zF~9a75c6Mc~knr z1WcC+vJo%AbtrRTuoIq>Ot_WN;&s%N4PIF~Y1pPvq-$5(I zpsR@wxL*k)Aoh07m|O`&bDA8ciE6RBZDTJRXrQtKl$gZ{#k^Ng*lPAu#YjS6p3%Hy z+ZR7zK(DWdl|HkAURzx>5+tA&URDmf^L4b$%<#$yO=xJbK0s)ff_joJ0;l|y2 zH+W>9eA!FxDAYc{yuE=y#MK%kl4k>e1=jzJ9Rr^l;aC*yCb&@)p`VK1I&xZJK&|aY zmWr^a73VvObKp8B*hmMix&CnNq>d()KYy5>J(M(38`)^XVGaXI_WU)VE`8jc^Z0Ew zTS>*v7>HF0y2~mZ4R$>`@$-ExFb-ON_!9-P0B$i}e_4+P1MsC|6(0bBf$LwKwZQOe zy|`ou0u>;zMk;Tr7Q0iPlp5pYT8=64Yc#v{G%IK~5@xnW2~emnB4BQ+jimD^5S(-U z7Mz13JpGwzLvVh35@Sn)m_l(=+dGq`P zLx`$J+!e($2LMU^g!7@6;2?-0^XVTTA3nL$A2CUA@`l_<=SVV^b3k zUUT8MDN&l~#iNw{tY08JZ40{3xql#bp-}nwX9xd*0nVT=ji+xY+avIQS2NM`i%P;= zKXHAS?H_yOEXe=BL;-X837Y=iLDq*gpi93%zXlT8n(561>GJuC6KVnKeDU)c(~F4x z#&sB+2squ(QNb37eQMGs2U}L|dC+GP*u&VL?bM<0aqZ8AkAE-V@UkOT(yA}XZ?n22 z)!yRA=f=G~#MGSkDnQ_J2y7QonWP;fF6e}Qb&eUXJ_F4YS=H)sfe_@+C7^#VWy#6> zG*I1B{BvHC%shhZo&BYMwNUZjX+c#U(E_;1g)e))*IEl)<;<)R`e-%uGF;$~bkKn{_+z>4->Wk33i0T^r*G)Y*yH%mL`rV2)ob#_clrDr z#eY+UGSEF%SM`ZchOu4jT68;K<=-B1y**Zux_Rg_Q($3X_S4jI9s2!umR^Iyr&ibF z#)L@~B}0#Uw4;_l3%~Tfu4~k-G_O1TMMWHcl?Ig&0Qmp=(qLB9C-aqR+MKftt(_KI zWOoOrBRM8<9Zq1OgVCMirYC({)h0TwfjlD{f~@+5yl z++gDW&ntp$4X8bj`ZD7k1fAwW3Vy8Ex@v0k3vr~H_7`RUOtY91tbnWs3=68Qg&&b{ zNa-%5rvZoVzcDzyAg}U>1!PMas7TZd3>m%KVvfpJhbK0^6@2u?1ysjwa(XpewE`Sr^Wl{qfa z!&wyIr#E-i2E?~(vSZ<2 zPONyY2Nj4M?6t~;9^YQ8`0n?;v&bRW2LeHDWbLf$WWav`9GG)2N}+ZgQder-jP6;O z%%=P+9)Bd2D%*I@w!H)BX?imE?Pt5QaQrXceW=RAjhIDGc-^5Fg2I~1$<^FHBY@}J ztPJ&%&aO=;2U z{{CM8fmhby0Kxo(-{XzHsiB_FjGN!QQ_JEq?~z$9or#-V>$>J}uruGCL5rJ4uncKd zXO7C>G}X}}Oy-K!$B%kH-i|L{$SzL;Nc-E4Z)xb8AdPFS&yfBLrS__=BCh+d`2^xVSx6NtSHE)=Cl0QA&BeY6;Y4O=4%P_$&vx)!_h$=h=NAL2kt3 zOaY?#3!elMMcvH@GC%$<%l<1yxk&DG^Bii8HPnf0=(VtWE`iR42(w_Pg3hIWsnuhI zu=M7+r(!kS&b!tM++J$OtucM365T~ESe5gKi%MP*MOpHQqz`z0P{+FDP;OtCHuEYY zd}Oa!R8e!t|EQKww<|U1D$jKUuro}?_Ta_hP`MhM6HLV#k&WgIzs#sHS?W-3R^qy4 z<^o5Aw%nHCRHW%pSs?-}!Q4vM%PB(en*i|&cjXQ9z?^-@(jnQ5;F<)gH@wOIMC%Up8gW>Y<> zn+%+dxs-b601implH&CbMueuUn1o7&fDz_WUBIrn0jrT_&3ZooaIJvHpA}+YHDb;Y zoGH8u0(3;!wZtG0rNF8H0we*C^{we79!tnn^DbydZGO%yc>i!{Q52SmFf}%=C@bf$ z++57#zAevn@g)UiC0={p_u zLb3kZAB*+B2l{%>81dQ1Qg!IXk95oS7YZm#)6KcG`CBs;DJ?YPNg(f)!*46L97+$E z0kEbco>m1_t#R7g!bOH{4cLao?9_oJSVOboYT zF~j`!Vp_3_8pDX@Px5f)HOyIk$qxCLpPHpq@h0OMD9$w-J$y@09Lw5(_I^rmEqGYs zv zSkQLzE&@k6F8-FTk|CNUr>1Gc(8gss_@-jZ-AAtDYHx*0zGXXTHrJEwk-IeRd~XU;S&ZulIx-x+HwnpTDTmV#)%)E!q6FiTno zrTK&Qow6bO?i*jzHxE5pV|bKO5A(yj~XN<8*LW^-QE8#?}*tt>nMOl8DDm#sBek$VUT8jh$$9IRC9k|`nR$^+mf zjJ}0X--9EqiU*31@Y~)iB+HMWfo0ti5N~c31mjZmhUNMJKqv=>Uon;-^Zt#oDhC2B zB`oyiAW%M0Gy99uD&70ub)kl*%(?1h^s_;EOQxcdWmQ4srohUf!9eX%($C1s17UvP z;ALe$An0U~cyinnOEWS8@$QHdNr)4DCgG`qWZIQ`u};Im)rV8eW%1=JRhn{qOSdZH zopr^cOfn zx(y-XcKwTs{WoAA6BCLX6$4`67oK0#PM^2)6RAmdD4g{Ki(H>RGSPickswnr*}}wp=W)3LH1i+G*uo zxLLa0Z%z$|E5M1<*v+(r1L0%V4&nbK$UKyPkp)8F^y=IXi~fROI6)~TC-x0J z{i*WtOzb8thms|4D!bqits{#wlTVon!b@u)siCdG;(UXDMG>i$8`q!Z8n5wL&}z7% zt7gA+29BO}v`VXah!!de2mR#EAV7tgT^24r&~v_tFCP|xO|$q4_dPJP2Tw7x|47|7 zBJO+X<$iO*D_|v2^asOphLpA)NS;j3Laf09^oPeTSYWYdPEQkh=LN4rDDL47X6u^ z0nU5sdRb!U$cqWe$SaM{^e$SIEpcg=qai9D#(`Jn-r80X!8`z_#)_Q%Lh08(a@nOp zz>8L_`hx%3yD-#VLOk(F;9gCL#}FlJ!{*jr)4OE}KG^cBpJG3BpqBtweBv26Y4I3L zlBrjfZVwKdiPvX*H?a6(XWnQy3^UWk!~<%|U+<#G`K!@B1G4^dpdX1#O0Zsn_2v>E zGf0nsXGWkt*5`(2auYC}H4g^%pCSv9KRYza{>~ubGDHTK(Vo2H2FK5hM}O8V7%Yk+ zixg`Zf_J#PW8CmoHoBuKKxM|%Pip8V8lf})@%h17ppN`xX(NJIiKI8lvhYCJcDA5t|HOvN8Ez@kKq4p441EWKie`T$)D$E zR4ly$+YQbjZ(XE2iH5qs$ZOJZT13Wlm{|8x7A#T<<)kSjh$^#D<6t$x2n%;p`bL51I|S|l zYqYLN=SB-{TGsPTFd*7;e_!7$3rmqQS(@Dhoo;G3T%-Y5G<08UKn0rWZeX#y0YQ+E?v6nOq(P*lRFv-SRB2G@?k)*I zh8Ah08-|7fq`Nt5e7|?^{q24Bch2ve{d@oL9ULE?wbtGDbzci$zpk~SN+ba}z!r+7ok1LAMuem>>4Xj2jI+ zTIMYF0Rzj5JX_@cl=CxSiRV#+R-o8%ts7M!0~WZD!3lYZTHura*9G3zx8Kz)T*9j` z>MFO^AQ6e*?pRLte#j4MnE)3hJWHmp5d|hafPu^qW0lecooE6M3h6XpR~kG*;veMV z2ZF>Z=zX-3D5#`};BgFvC;&KQXiT^$Fz6zuYv*go!CeBC*3{I8aaB8ofHJ3nppG?yVd`|%m?5P4gI1HR^q6+r_K1h}DIoFu@K-bLT z$*-r9KtrDVWXUKLloyW{hgMr$J1w?>9K_-K(Bs^jt^4|eC9d76xaG#lfBo8>cEF$W zS0@P7^&(7>5C(7?0ZOr()*#X6g!a7yQzOp*`>BzCn|?`LeR9%Lq6Zc@bsL#m|Lian zr)K^~$g(&aTmV3;;!xfkH33BNKd_lZideHc7eV@tSC^y3rtCKQwMTH9tBM?k9838d z!hg?1$^VTmM>+BT$C;@25tl`)yF&Z)DJM+Ilu++L!7)TG(r^)FB7V*%2zR1hBE{o7L9im8Oxy zr3MB7bxDoFlAp_t*E*M?%AnQ1Iy*n#=QYdn>;rYYL&qxXSvD}mA5~Puk`JabCy%46 z0kOs2t-UJ&RQH^`{X3^|1#l|b-X&WAA-QNYP5KShZ}Y$*^>qh7cjq+xxdN>GKIbdw z7I1M}t)T>ozl`)!=uca`d$vsomy*k-r*A@4;wXAA%l9I8A8CNLwBx~M{FjE)t7xarGePlV1B)y7E1A7XOzwB*TL@EO_?e$K(0uc;qG(`k zHtqpo1yxa$*_93@eP}*bq9|=Z+pn$I@r!@E6KF(vpjd3(#iKy58D} z5IxdLp@B2?q6mdR@g&K^;BRh+G0+A1i`yZf9)MXbRL?^EQ7Ud5NMv6Lz*J?-4?^4S z03R17z$phx?v($VlKVf^KLJu4 z=4J-Pge-A%N+E|&fEaO2=j%1#iaB%1nDZErB9R4irH-{ALF!DC@PArNuUXi-4gbvs z62Y*%Hy3^wx4&HGN3SZ2>^|Ka%GUUhfG3)Vkj}@36ntcbUiVBzJLq zemGWTIkj~DV_LQ+7oehEJINbhxv-*iZw&p7odyWlH9mfj&<157tq0T}jf+7nYiU9n z*9xSpwfVKlDEPwY$B(|+Aa>EBp!jH14E+9Cze4hHx`K;$&W4;esg4$VL5j0lguI`4 z>^-LhLtK=H2jc)#ZmSPf`yQ5RmZsc@=(yQDW%8dYZiOiXm6ym6FldugJ_8GXXWkdQ{G%;M&<1`arek;)^MIpr@HIpdF++~sdCCzgC z-{g6XpnjZ_gl!!QartCBo(d$Xq@t|FZ9(H2t0Mahqu*h$Gc_NJE&x z;V^%GlLWrNPZ!em6K^Imh^ps{WKB(LL;A}R96f>SfdbbaEDkt2ZPk_UL?Ta}Nu0WZy8V=$;ZDcshu*9aJ>iYr}&BG8^+-#N|p z0g~dBlml`MVw~eQZGm9Wo&P@%y5FVp_bxhnLed-SSph%!*gRoBl~fXfv{bT40R~|D zj{yK{iST!`s+oLljVQr`iVxfOQ@PBc>tR^~3ND-nB3h|#JI$Ey0MTYf3a!_aWi?#_ z^7IlgVsrvJio=Qlz_-EpH+u%(KiD&tO-uCwC!WG^u+z8vW8~7(>LrJ_3JgyzvSEP+ zl}zZqX%*Q7b@q)Q3|d<-XKTx#5jxBUOmc|}$9;aVBL0P+jGF*_u@Q`!X)6i7K&uow z$OZsVJ1!fz>yAYJQ{NhSkF7uOKNEb(t%X0u?$Ue8i-6}+yhB0QQ0*!=RjRn@xhgyq zkQZ3jb$YXGH-MKrYLb;#r~*OHvi~?W1_j7%X1Y?;$O71?zZ)W8{6-m*#TS;8DAK?#BR<%Xd>pc0;YP&weKv zo%Zew{#i%RAGSxwT@TO`Jll5w9RgH?@k?qk2oFJp%Wg=KpDrSI>yg#|Oor5L)&Bqm z5B>`ZKGNl^?t$kHrq2IBk5I#|0zZQU|5FA}nholA;r~>>`$rAnZ6nYU?@-co@P%K> zoZ5|tnDKXuguIU{Ms5Ne~QBP{=;pA@>~w`u$ge2jJ}XKCr)P>$|u> zn#6AWDZHP?f)Wwim$g)uD7|Jx+K{Djs$GHZVaWbc*2Yax9GOu=kLCv?Da7CMCPscu zLf}6o zHFof#gujU?auvMTb;wb;?Q4T^V*TGtpD(2Frxsr;U7astlw16&HocLeo%!(q;P3~3 z_f!ml0A&_}!nMob8y*(z8K=0?*R0opGS^{B~V_6z2C2?vI;I!eP{Npbn4qUr`O| zG|=z|!c5nvv)*5-{jb%QZLF+PFyhCUtR8<8O+A=U-8vGQm_Nj@7`31dsnBTo!oGWwAUZ6 z2;`*7G7&{ENYV!gavwLIBeqdg(XC!z^xZdkPeBmiNdE0jom_)DuK2}{|CSo>>R;|h z(rJ5!6)+MvdMN|k!!jW49X`(&2SZ29fH?LufJ1~#{$J2t=+6y}7<67A=U#u|P2^i^ zev$uDeK<8!Cj8mfe9M_unAwN}!DYF9FR%D3X&;|#$OV7+P81t zb^spgENL6}pr1Kb>}gh0C47!kC&Jrx+_p@^v!GJ4oK+F`2Q?9?!m0RI$MfG?qP&kj zxj)jp@?65wCJ|v`re*v>MKWEbcWGVtGiM8}is2-n8`D4fwwb$S|0}_4*`c4NfUgr4 zjCTD?w)qu_FCj3Hbni3BAdkV3-?~|g6{SM0i?(KR2@aFA#zzQ1^a}Yt>vFV z14A9%6WN=L>bG3JhF|P;F9Y|;zUQB<5kCePVpCBBXgK$Io&iqqJk5|FPMPzw7q(%@3z=r>%Lp-MGF#9>(uE> zrh~{L)Iy0 z%ppXz67(mfZ50&`L7>eUxA$)DyeeQ)^^oMK~hbCuof#D%JWsxg|U=8vU>9bGa;t~-{^#K%z+aU1OBJCr$znOWi59f1%-hv47#X~*B zEqzfcz5k0Wia8bb`okVb@jBZqr{qS;+-6R(Cnij1E117eX)S1MnUW*TZJyYepS+d0 zJn<%;P%jf@V4SYDnq)CB*Qc4w0c*77whEmr0xohiwXha!`gbyZX-kc!vAT&G>r#b; z%Z7`w0DC#;MR(Qa@}w0a+cPAF&P+Me6hV_ znD$+t?niC#2adOJ7>pgFg7X0(i1z@BFuSV+9}Llqhfb|V-?68YiwNff_S&xGgSq|7m z%7jF4dOls><9Wer*+2gryO0eKH>av7`}J$^Y_}--0pPZ?@G^*iWa0 z3O6O$%FG<#LG)C_MHvg6O`}i!bx+1h13Ab^fRQ4}_(^IBR&Ei3 zwJ3{~r&Cs{wO{N}W>wt4>Ta56L= zsaVOCB`!NIo%&{Qce$6LC5-(0SKHqJh36sRwz5bd?LYXim4a=%w|*_p&5MIdjw5jOfZcR@Z*i$X z=BQqHp9ou3nbE>L_V)z-d_WYc#*6cRz^p&%2}sk3>$~1CklJS-E5*}W{GPz;Pvg3n zrZw|a2{(ATAaI&%yp*Vjk$o-a3NL=ZJ0&Mk^G@)_y0Y{R0~o3bhkD~uisbbjZrP>a ztlO*0)+$y_9WFL_6A$?>oUNpFT$L`IIZfbC6MBunx4&%um^qyYVp!LyPxX3ZZ+h%K zA$*)xRAPTEe(RQtgp?|}Dhz*#EhCM-jdbeK{a=E)$@}JCQj`+c9E23z2M@+Zo!sJ+ z4)$b*Ox=Yn_hf|ZCzb5I*4P!52o*>86ziUZuG+$2ayqv_43)mj>h5O_+GB(~$*(#;1&sAS8A$~pY1|$ay{5>r437RN=G{*x; zG||wnoKbvGhwrCmi#Q5T$sqkKoWY^%1NMWUj0FPZ6H%K0VUs0l zI9AqJs+g3bai2=}seQT=`BzUXIi}^ELIFbp);?VYg2i^sq5yyDSFvaf_8VU$g~f?{ ztS&Y@dk}2st8Hw8mHXW2(GL4vz0P4p`|`<}?G9uy=2S!kOz&YZIs`P49u>{bHFPuIeZ_hC>x^Cs8BQq+IUGGzT9t_hz=eS`ASV5ULmd_)4D7; z)(M-ed~QZ4PFE8D>}M~T-%GFdRfXE(_r9_I;&E=nc?lOtym4g8BPe84X%wDPix_Kn zZ%O5Y{HFOn)1iHlJ2^=~X=tTO5&f1mhY&X_vKXMt1O2QK54z0QN?o?*Q5GF$F`XjPl}T}**|x$76orV zKZ%x;T3d_yB_H9g{&q--eLHg|HQ(#|GAX5q({Ne+h%uKlfdYxI!|wGk>3;XD`!ZE1 zGXwgB11$rc76wET8^$l`I!A;R_Ye&cm;PRenj^}m2VMs6JFRy;r4TTXalQD;dkgEk zEX)WIm(0)A|Lcog{sYJ=o3B*$OQQbymBMfS9D)u zW{b+02`<*flpG#Srbt~>t|h%rc~V2c(Wn2_XV2BtNjvz~B!PSb)dCFOkx(i!`P6wU z5My4Fxh#@?NVKM=($1FcI#uQ~0YSQB;AjI)nxB=&GQNTaHrO3PE5FZQP=afZ)uZa? z6N-9eSFW(w&7WtcQVD?1nsuKoshOa=|{I&HO=1hvO!KUCwgUO>~x z^QX}b?}C*xE-+&B+|}-*F=6vVBH0b9EO-3`?FG68-Cv#BOi|WMtMG14*ExomxlkRi z$J`V8*)Fk`&uVyJXX@mYu4 zreL{2eapZJ8gf6mgHH;MkW2}hD)Gt!Qoh=@E{6Oa95ZNmEDnp8?KD&-GJ`VC{c8G``tZ;RH8DF17Lrb#&KJnV6;B2)lE)%jca|8#=;Ab?4%uG#AhHCK2Rz%X*LWDan`8AFO`w|*`9vD=_jNZGq zwu;*$O90XT-G;4zl_o5~`CbekhKK$j;Vi}nm)~Gk2#@F(n2AL)H=H64^i}EC$PW_- zDdhE)#TnCBN&G2dmgWaNOK%NbkDlvih>G+6(x58m8PpcG)GY14`sh|5FlhoEa<`tT z46A3P_1Ac}&$WFa7oKWaOT{zn@6!t(XpxNj5DEm0tR9m1mH`dXvGs7Affl{g!TxMe z%FVKm&294%k@Hm{EdK4=B=KHtBoOkP$uvT&?@~?72mwJVXn%5+X(l_g-x4NCG>cNS z-|h?$*f?18YngC#UTQRi$=uV}T$`gkx=DR)D`?+TiG$Vy#kV($I$kQ!)rq)o`Mv1g zd}ldFvZ-4$Y6%?(>v6y>aMo+InxbPacMWm|=Ihy;a$uC-9^-FBeujN_92!7KdC#Yvn!7tix@b))XgAgkkN*~VcSONGqKXOCWx%&W zeCK=!?MI}Ur7J`GS(~1y<9R#8Y}7ExB!9Iw|R<;pc`@Oy{b?2nrDr-vhg{9(Og`Z_ZAWdm6ydN=u&wM;s|c zB=dA?h?`_RKo?(^7G-aKGXXTD+!cD12Ll??EdN!N4>CU(c7k~RHnH*Oip{LnuJ!K6 zi^>lNKPMe0udGaOL6~G^sdeGD_Ip@qwX$PRXR*=}ecm%sbA*Cdo_($MLk8a_8Hk6_ z8=SO<;H4#VKMG_czVWtkZPuC>upU=(a0ZRuW8s7#_l;V0tV*BXXf)3~_Q%UhI+oj> z51B*e~m#PQ!bIyp>O}(C8Rs0u z`l6w%+0D3nxV}Dx;Axt>8TN`mLK1{V7b>le56LE0yo&{3yzM$HRrIt|9+vZjFCz_1 zYKjZ)q$Nj)GL%r!awp$dKfk}8_pSbNG4kHbyGOq=-R<|oe9nHne|no$Rh<~TEK`bK zG8eF9Z})BjJQ&cv;M`Za3ef4{U*fn_To9y&*VqM8{n&2j0$naJ@i7toI0Pbz^*ulF z;fh-XUW)ZSJ<+BQ1O32;h>8#RxE7x|TC6x~5MYe`8M=8oL^Acv0{d%4 zRq%b~)CaW^KKF-m705c|+6lMO(H=Wt!Bu-+b78)!JCkI*Tt z8sz)}2IRojMmbT19tVOqC2)!OSS&Q7FeSLC%QA8`A3&8*MU!x2Id#tG6rPb?$>aHX z%}Ge}y;G5E^@2&}=g$p=RS896l>_3>-JTN~XOp}NI`*Qzb%lpuT;++|5Cl=0JxLQ9 z2H4we1HU&xr_EhmNOZB1*L0!S68n`LIBf`oqTTCD0It zc+@^yWj8qLzMuq`3HyOGGcXRSlb#$iv|tNl=2}EHQfPUl`#tcCZ|FP*ac5(H=>v2yC`w@KdXGb49Jn;V%E z5)~7LN)HD3P$G1<*0ZX+js_Di%(mCLFboOB zFPLJ?NVJjMhK7pYB!XwbH%*wMXi zrjw892bcFOUq!TC^PlFYieI1hRf3zu9=5kfP$~Z&E6oL+hfgls8sKbM%U3mxQ9*#? z5#9e}dz)R_+nxI}zQW?rS9%K^>hyBR%ppjFR@XFpy7a(y)_M%o zra+5U+mz;XRnAFplS1ZB{U+=W-Un)*hWijBI&R6Fp}{+DU4sku zG>!6@{lgXAjPuB-7Q6~mCq~4b511EHbVpsJf2Yg-1NiPoVQF=sFqu`?uj=`M+FE}% zeBp?lWKjzvmI+tEySCC!ic};E+GjNT@!l7E;!aZO5^?X-Hdon|1>c69n@|Uk4jzX& zpdWxcwQxEKsXUrP@4>w1Kak|X;R##d=A^S8V=?aU+Wp6~=QGEvd&}KCj_WT_S1AN+ zxXug>NzPuZ@Q2OSCu*-^rC~baDfz%uP%HLV!exLp(Saq)zZxhW1#jkvnCcYowif)_ zhn18%A7KA0CVnVqz^#{$q;%2&sl+#NjAeY(GE7X0abPE}D2G`y_+PVt4z9HOA*;5WZPW_Qx6 zVBN(OT={;pb)kDwh}YiGy}bv>LQ~7v13Ol`WKdKxj9R@z*^62&4Nn__^Td$lQE>j= zNa5LZX3dg*r1-V#%d$7Eb1Uex;CgIwbURx+&^v9@N479G91P08(AGBH@Vx?8RN;zm zb{IqZDVqb8JfvX(iKTtIAJ^nSg!Q=zn?phn?1UX#CP>e>*+zQFkd~T43d+>)wshU{ zTx!bNPeUK8DOO9iHbK*pn{=nem`bjbc}EWP4__Au&b%@IUSn%pS@kN2;F*jDob`Pb zxdeaJKze!vuoYrXVmVeo0u0G1@1F%W?Uyz@v5wi~H4+h{@uLx3^qBr`JM4VUhiGu@ z7I@IyetveQpw^inp2`-mW>RmStyu@H(nUC9`bU4YO7;TImqIGwZ%B z>IS-;p+cwu5O6i5Y@0j7HL!NF39H@ge{#uI&A40X`=<>rLm&{u%wBL+1Wo92? zI}&VkE1s&HuX&t*!`HrypC_0bD1ouS$HDIT7^BHnvNalJQI*lq_y#ErH*XHnglb-x zZ7guvYz7A1v+4-{3-Gg(>L%Up_cDs+c- zl?+-c0+czVb$(s&1sH%ww$L7xVBl{XYn60Oc#i}~n(dk8HA9-_T9RzT-|bKDa#k+l zY6{ou|K6;xt#h{|-n7oE9>RFYjJU_w9hOGk-O-N*#ez3Wp+QE07>vfJfAGdin!D^3 zKdwj}1g4D9>C7QGJP2FBwd|!GruChRc}B9;nxx^!T)kuL?AYU&xPCrcP=}L-0U95D z4Gn43Ib)VocV4_uv9sgSTe`#*7828k?*gjHtS?_``HR2=_#oBwiA?4%cCX#rgq9y; zS5}M+tsQJHYG*Imva_;qN(uLX21rT=;(9zoX#gJL<70OPH2Cf~I;p-a(11ECVYjW& z&z5WuWVM3WDZ9~rP{td#xMO~Ulz6)BC7!Q1lb?rzKqZV6b<&qO*CiIY2gcd6u?Dcn zjEqeOUp@(tx=1w5abSf$0cke|u97bdAJVUg&mn*VQJ8C-bq~-V-=mk>m-|@;@K{|- zpm#aks&fmE9pm(!mXBWfD~L+_CAZW)!K;GS5blabN8d}gAHE3Wce7IlS5B9 zv6c}U<2y4sX~y!Kv#vhA&(hLT`kSErN?d-p5H%VEoN@EJe-lIu)Y5fte9KiH=%wYY z%)JUU&0NS)%H|b3t)%CVSW%)n74};TR~g_!H)-eM>bqa5zm~RVD3f1T6BM2-ZrvR& zRW~wG{vjmqttx$`QOF!Zx?d4%r+>H_SdCfu10p54neaP&PNa@{Tgq zZT)fPB#@Cc0DVhuc2B!LX&28qIXNLfywKDnpZLA-)5JXuB##hETpy4z?zA)%x(w9h zfcH?O3^A>dLxbBAm*)54*|(k6@{TynnPldlWeh5KaUA*9J#nLM{A2_j&*^lK$umhr zt287}&b(6Brdz_O`*t~l|=X6jECLSCq=OKEFsAM|kdjo(KC+y)Z@?ieB`FTZx% z-~@7KX0}e8+0&&Rz?w1vfm(|Ig+=PYyk(JB8{w8lP`Vfv{@T|I%nK~YJUxh=69w9a zz&R`?lN=9^kh&*r7jmcCrgUgS-jvpa(J`BzMLnJ&i}<`-k+3iZ!!t%~6y&EPWD3?U zX}?t&ar3i<$GWg*ox21bUkvl;c%Bp!G}vFP*!GN}ij_on2Lfh+6nX6ntdNH`^(HXQ zJg^W47LZ((?jzODl>4t*7n+GdgH|?~k}~QuPsG*lYpVwyx3(qFpm9F9v;1AgX~&0$ z0{~JMCfZBozQOqt;AsLw_Q6pf06-miJL)#vmyKScj*gB4)eVQNi*Y9`;dtzqzV5q^ z>Rq;_fycU2u&U<#Cq6$WSYe<7dM%dPL~{y^?fmiQ@mN=RS29YIJbqD^y^RTwfEljc zO1RJ6=^*^VAp)&(@xheMu?HwTVh$CWI9uMK1kA3ZI~cb~2J7pR{l>XPA6n%Ui(T|% z!FT;*Ic0LeQE?^E z_TFngJXrF_!^{t8p`J59DK;Y&j3hR7Jhje0^++2`Oz(OD-!ECxRjgAz7{jU)YG`nM zHf9Pg2yQ#Sa(W{kl6rlCl(Y(biURl9Ki?*JQBp7>q;p5y(RYJVhQ9) z9Y`XrN8+GP?;&>9J}+6h+$2`8w4C`X2E%@(KW9+Avdn=_F*ulO3g_?#3~dto##_9P zjOInT#|5~N9iuh9c=UVH7KlA3*NmM^J52^u1*B9XcfInV49 zm5ty364rNu35C64M1^>jSZM&Vl8BX*{{4GjLvV@v zLs4*tn&e~I`qv5T)~PZ1HTq)l<$2!GPun4XmW6=Vtye2Fprxrk zG%k{lwdvxAh?KzNrOG@m*fz>GSlg<4=dZQk>1c(HNKBLo;x?XGmkf|bCHy}r{!{() z4Xz=9!0e3D6f<7`6iA3SyQ0eq@RA}@`I7mfq6W|2(YEB1q0qUx={Bl4jz~yTNMMYTv*YCCx-z5KLdWpgN=krY(B2ODMUFgq{ z;NVqo8+Dp&r1Vx0<75!d5n$`Uv127uzH2%DwRxOf?_mC4??dmo@omgs)iyU_m-&%7 z!l(lK4J31D)9J};9p3mYC~=D%P!DFS$2W;4L_vxZx{P2>xNkXex4F@|w5K!Mz1-fE z7!%x}mGY*LN*zS`1#Y-b?y?|)`Xbh*5e@XC0Qst#404#OJXjTMhnu3QvaPtUgPYxx zY!3a!&tf1kB*0nGsEZT}PZ5?Uc659+!``W@Kvw5x`((Q3is^(33ZuqCNkSCJ*5;{p zzG_v~C#P}{x@WYvw+{i@1;{A5mr7-=$0?WIJj0iwO7fYAkv^<69lDQa)UX><%#Zd6 zOBjL2U%^`4kqoJc&$x#r01_|TkMF2Tw;cFw8X^*UlQMxJF9g z2`J4>XoY?255GzGUx>~ab;xzf%BBZ|$eXt85hmc1kySo+Ai8_!udH)bx)#k%#ah-4 zg6{BF`3j}0W=$MQ^597^R;^jOD93g4gnk=uj7q>-(0j(g_|)`vSoS29e$_OnX-0*h zRno?a*Og0)h*Xr$V{I;mCf6UzASpcf4U}q8B}!8E2>zsbCwU2gVB?W%j_oo(p6P8?N(0)}IeFCiL|S zJgJh+%()S=s?s+tnY7=XMUdtQOSgU{@^ShRu6u^=ZZ$mzJ0qCvMn9~-@MfQ7*oXpc zw@~V{aw+W>JgD^75D9V$v}`Dsy~pPQYW(*Ih}HldWSm zWAMCcBhUo+HxVS{er$h1^k%6lMf*vXK{EYNg{vsaaI z=C@q7*k{G;0u_FQE^Wy-8sYZwMGr@P-!;CxyqoAIGIzu~UoB5`$C?;;Qf^uop~{k< z6qpqH=EQ^9vQPkkq|ao}4fJ_FTGge6bE<>q=50xgZ)1SE)a`Xr?z@oa_VD}i-$Fv| znep_MQn{iZF#T2f`hXpj9tZ1Je0I`5o(py8zXMr)U{Lq3O4Zy#C)`Qzu8t+64@R#% z9cn7<54!w&XCf1o$>lZs3pS=DWOg+efa_73!I{+siDq{BM>ksT`hpt4EMMccw)?&Z zKPqvU^y=aW7mPj*8wlK&j{i#eKqV*|ikBG;^p0^;jC7j-1Q8r31&hBb{jWdm zR{I0o!f0_*G=#$QRp)cJtgK-zE5RmHiorm%%FNH)q6u9C_Qv@|SAhg7;&yvaJ2Y4l zVin}M@7Z#QCdTBj->MPk7XoF@KYkg!@z(2}zB@oR$X^WPszHU^OLk{gqT8-k6pfX1 z)}63Rr4R5id#M&e_XBqqS-(*hayf9{dzggj`}wcUroFsBN{f{iK+J!0=sl_zr>N^| z`j0O1AEEoDq8VsmUuKaqf`e8zo75rDCofAr`B2PM9&K`9^jnHT(bljmZq^uCX%4sX zld6aGOq1i>o*0-ztyC|Ozk=~Kg{{Hq=QxN4_~M2NqoC`ene zM=H3}nEilGs+9W~WJkqES->fo)+NCEwnT9CF4)L(i~m$>@2(pg2pZLpQ3y@uiMMZUV*z>qA zZk41XnPGt6{}BzuLAG@CgrIY)Nc!3^&j)ISXb|1`bkuApb7K_SiNkiZsJ6Ru|7rz< zB{vIKPHb1(Y_nGTG5=P{y#HP$eW)Dm)AD_*z(4jzHq}HEidzb8TYK>@dTfOXFe|ER zN767LPy8PQbL>MZ=RUL!GZ$Kh0^*j zS`nFSn(#xA!niR*Yat}8cNn~G{+^xnc>W?PyGrTB$A3s63=;wB)Vt~-Xz+I2rX4v{ zv$61z3u!SANOw$+n_VKXPGtFMUNwYWe^Tuw`=lWUAS0Gq8fGlX{9)V-sxTP-PNdVE z?J3su*6&QaUODlfWQuP(kLhtsYSmZTTFHD5cyMz<)cJdEj-sMJP^!40x3$5ekl5jk z6~0u=el~tIRc)n8Wo#5w4zdW#tFiXb<39oGBXp11(6@fH)ExH!ev9Raz&4LB=!2VL zUN_YEQw?u{Zq)N*W_vr(7@zz>Bfptcf`brHynA`-`?t6e|M%k7ug5RSZ$%2)y~`Ui zh3GjKl{_!4p}q2qe%#!uuvZ-Dh;Q63B`)mZzDFfW`YZK8OcA>w*V}k6YfW7t?2nls z>oi}*LNr$c6S<;|6q0|GY6T|>MK>J%C|v_nKaU_twKs;3xwz~C1;^aoR$pqy+HOoy zz-E8?I^4xa1NLUellu#HxKEQ7sOOYn&DW_xXNrXsycaKj&5A!a&+lf`pGP(?ygTU3 zZha9KW0ha56P-?8-H~CC{I>;o@-Hlao})cLIT)_hSw>@`+!&$WXY{XL+StXN?3Kf~ z(U(#%&CQeUkh9*SpC2@6)AT*-;?0y((!wJkBl9U`9Rd-Ho+AFyGr!036S;>OY-}#Y zuQqQ-@tD&~DTijn1rdc^XMPub@amQ{Ub`cMP5wR;Z*@wp|KZ`IN|mH!#gH#6152x< zh}`f~Uswlp$Npsp)<82O6qGwcXL)Dyg`S1w78gUJ?ouh^-9y|->PsXR?_!)6$3VPK z6_kFF3Xbp801XZ8`dUXh)9-KE!;NHY550Hs*Qr&q30tyLJbG)=ByuD#HTa)O*}TNK zJ1vbV^;uQpwbonMP2#)0=nn4}d~RdiY8e;D>UyE7!V+?K^~aznVye<~@{wXi)unjj z@yc|{^fW6!a>l;b-D?{enRKbw(07V(-*TNndb(4NK2m5PaM}OGuQ&lFqYjI4S>m8S zq+bE9qns`ehm)}G3^ zuPh{`6vy>VXKZ)Lgz&4P@Id7ohnMx1%3(!d_*ld0r$O|K&A`ji4u0SA*DYCDS&u9^ z9nX(s<<-=>?1MvsvnszoJ&U>fJC!XY#BfS$-APu}Vr_$+^E@P5d3)w;EZ1;CC-_X@ zH)Xe&K*>4p^>_{Cl-q;7r(UgEWA7H6y1Mqzuw9 zs_~G}cctBfBZaje>^gkVA?>H_N&>PuVU%OV=B{>?*yCx*CORCG#nu*9Ux?ModuHYI ze&l=Y%t=_MAFR{SN{9Ev882R44vzPK+O4Bb#r3_QI-g%e zkEnjH$ox~+ZO(S5^T{U$FvQ&if$j=lpF8mM8wjNEXIzKWJ539cfA&zt&p2CB5$xf& zQ!Uq2toPdd=GE5GB$_3k#Lb{hqlnsCDVrZ1s%@s>j6T5+CE<>&%JjeqR5+PP5I&Qh zOa7Gz?L9aYuIg-CH_M-_QA>E45Sg4XA|`Ov#S0NtGcz^)44<4-$lY~;VK;rYPTH`6 zI}03~lVXa}TpETSXJm-A%~RQTwfBYy&d=wKDWUbcD&_jQ82f24ptr|UZNEwjch6mv zuokWEa1aSx*2!w;3X=#D%9U3##xx%G%MdG5y%lbeX-Qh2W*DS|4@YRq$T7A)!-j8Y z4)QmI|1MV?6LD#*yXc*2GZnMhnPa0B;Q4KG=g#4w-AVt$)7YWDPu|JbK^7G&u8;5^ zLp+p1qH6XB$0@(LF9|v(UCRoa3MVI&v*vm9Q-|@04+!+;hLa_3zH3O8L7Z4YG^pQ0 zE&A_Ju8PgNIHa9hpxvXAgYbErd?XZMrZj^LE9U)b?>c`Q!QcTRJrPwhCgxgq=wP&T_&J&u(CH`KvNy z7Za?;llO5yo5MmEIG5)Qt}~czFuD&>kj1yJBq`iCkm2fIB>jb^##)4ck2pLdeX067 zM#fICd~|Y>=KScVQ1bNANXU}t{gDpi1X_>p(h%wgJHmTs{&oigAsdtXP#Vcr^q1> zTZKQJkBWJl$oK22QKztV{*cE9=_K~pA_{(NkzX8}3@MKo6q8eI-X}i#MDF|5grRzL zmx=J1a#~e7poeNHYcRAf-ayP!yOSSvH?-Z%ADJIFUtjO}G&IrU+hDz|Z)({qIwBdH!jalWJhrdg`%a)tMm!JKruv=Bh zXJIBOYO(Em3gIJ~vrqUnde~rTxw*-iTZ21vHMy>iV4D-=4(AQuA9DPD#KEvm-!p26 zxTJaIZ?y_L{=K!v82c}@1**+oSY;8@Sf8zAe_1$LmO1radR2abJ6v2sOlTV#FJk6U zU5dnb^eG(n>04yUjEFSk1GUZdwl_n>#i_Cp>3VugKrTzUEbRpO@I?5-CWeUnbelpf zj`rq-6ed=mW2!VNQuf|FphlO+#wjgQAoJYfsnHfr9yUit>JD*GK4>WS$P*eG$uGe@ z{7ILzqwomd2uSelio;u)&Y?y7NPgZ)-Rr82$&q3|d55J>+{yy7-qtCM_6$^rVsn2t zE=Qsl-Cy-3=>J;nDQ@Nsgz=59Cn|(r=Ue!r=Cs#Th|;W{Sc+-PFhC@Rer>@$jr8pW zdSgqplZm1yBI!G2kSVW{kT>Mcm!mM*X?zu+emThshs(Bvj6A-#w`(LdEN58aZd2L| zlKjRW-5Smts0h0+72?o>Y-GH4Sm@kp**%P@;xpASc4LlN*LAM?ML1P#IXJl`lyiS_{pB$nM*+X)3@Q zX)q4XvtVW>HrrlJCtAlDzu&5SGyL^6{p5v$V^TyR=|Hml4R1C_A{U}EKlDfc*sQjU zf3;ctzmzDijt_awm%e=~T*`Ky8SQA9{)9SZ?Z#)8nyO_B` z6sMMx_bU1X5K{|EZj~bfTO*IXS9f0PjV-6sb~_=&iq7Yw_}d+^+pp(aY>vz^(exJF zkV*b-tl@&mXrH_{l3L2LBk_)$qx|hZSKC_^DV6QlmbCYZ29_gS+s6z~g${oRD$Ed( z^1XTgYUaQpKbK&2ZLim%$YKuWm=!UgO8W-)Fta_Bm-g~tYlL|yTSN(hLED6^^h?K8 zl!)`XX`gug?v#A*s4Wapa@-R{wA|y$U^;vnG-x19HW8OcPF~!_x10#P68481mp-_9 zRZg2P^YijP4NPWot4)^He?xIuN}b(s=!xSbL&`kyIb8APo%ce1-lZ$!ORt391qi%%eC0^{k+j1h@k>@wBvQ*DKHFHcT<&&?Q>!VW? zH>>lo8MP2}9Hk%=r?LO3!S-(FK5%AD?3<4YZy$e#sbEtRUdSk4YNY7y9kZ!Z6mQd( z2q4w=8ptZ(6pP_I_yP+_5suJ6!IKCFLYt(`w$G)rhnNGOn*`1bdtDruVC`u3`ZAbk z4i7kz@7R<$i3K{6t_mpkML2Q=Mw9fBxGu)&PYpTXC*Ktk;{G06c42rZksC0chan@) z*Ypfqk(HG0A>SpeB0SvZaLb8@R9AyOTgcfJKCEKEt{4`!ru6uvEJ#QXmu8r{x_FJtG??x7V52IC%KRd4Iw-m`?SDbEn^ zN9>BKQ-SMJWTaT_6WI^_U#z`lSk+(CHmryON(iXrmM$p)sZA;6TVdxzd~ICvO* ztGTeQGV?X^%8z$EM(tQe-QmPp3f;UE+EN%Iv=5}$cCyoJ;xIA9)7Hh`Wt13@a(-p9lr7cn~zNgQ)mTq5hT8VAlPX9+zdfc**8lMC|T+%d&dPjk;UtfzFtdhnf4WB&7X?M|(1QA{% zYxKCA+~Rb(dc$7G|LohhTU^Ogly*toJ@{ivG6V9D*g73tWIkS)z?}3B z$^Nn7`RmBX|C>F&y+Ha#{jbvx?p*$HOO-3HhAWpc6On?wz5ToJlvd30^720Fq?E}_ zSy|c56`JeVwlc(iuBg=pY-W}YZYaXV41wjdC%r-gGEm>!F$&lQl>E zkA_Q|G|3MIdo(pQ=b+01pMryA$WwtFqD5q4br3~doAHVTwYTGH2ntS3bNm}>Dxvs<{vZm}^8ym&$ zT}#EjE6HlajdQv$f3_lTf!)S@ai-qR=NZl*ogCPin;LkcrDsV~K)oKnyYb%y9BBJ%B z8J`9EjTGXTOPJ(iG-jAC3d#N?HOt`nwkL1j5vnA7TJ@~5rqDKi$ty~>T~W}`&&{bz zSa4>4=54m35{HJm4IWDG1=+|;3}QfO-gasH{QT`#)t-b8M7^V2TwmNqKYKR0SGR|% zI)%Jb7<38gT0L5KtT&q%Xl_Ek-^$C&%Wd34T?q{oke$wx+1m`CSVEb1-R`~a_nvHh zG*0cEiw$@$QANU;2**j|?jhlCAA8o{JGf-%d~FY~2+adm0Yz$Ek^~>kPd_llBlCONw^iyQ zH!$%oC%nbq)gT^tEoze4PbU;jK@Dd5*gah!DC>J9Z6=!nF}67173N;a5B@>Aq{5(xkBV$-S`n5}?U zWQPbhRF}l}LKy5`;iKKu8$I^&Tg;$6Y3e?^*xYCLE@?2m$LYr?TXIWUJ6w?D({lKk zHCsY;{Gf)#DZa{NNI|34ASZVm+yB62B%4#Y_WsPhps<-NxyYH&6j~;^WJce^-Mt%T z^AZ@&G#@vTYIF=TV*tCc@!w2bVDY}@&Y@ZDp2OyTWU-|AgqCS3JKQ6*$#>xso=|xX zk9!vKYsJbGzSb0t(9hM)(zRCZMz`e>Mumq`B&Uoma={Ndm;0GU-i=FPG;B}^S@~2o zoor#GcYZZN186~B+sP;vz)Ey>3!D5#7`K-h&tmh-P+!8}TV%Ax-_akRuF)$ zXi+i2sG_364etac*5(vvYu<5%P2ry|6nDZFelY3R5|K5nlqoBVBtr3Bkw3ZYp6+(N8Tsw^NCa- z#BHxLQ7bd=UGlF{uwztI^*?wdsEwGnV^sKwbe)&NaArVD?z_Q!3=v3tw@&Cz7JfT6BsGVz%y=WlP^cCSCv&aSJXbWQ zB5INRz3|fF+{)8mE)OZDpsD!7yhavXOM6_xU!!IPt-b`J#$C1WrnkZVk7=!Z&7x;7 zsM8TRL!o3mneBoi6SuKk6mhl=nSaCgR}OlKCk)~f`|YW3u~I+A{@Ui#sIW-PuuTzS z&o0P`oIi(^B;OtL@y$zZm5yd?#6)IYMws8i*(NqF};QA7?=<8#KAcWuF)@>}0Ety-t1v|qPJ+ddHEtV+Bu zd$@dgt+`cd9>K|^D3nZQEFEKb6`ffy!NGi;0aOs_wXC6WCl@}#I%X!AvkestxFY3 z?NI$Z9yLgH%$pl?9`4=`rZPOqYfBV`96jvFETf`?5cwIZFVDR3=GJ+ zr_?lA^Vr$Rx@CoRb3>c}q1$j943NfiyOaizA=x&sSVnqX#oSN+>ypweFXASB(YQ^0 zu}ZLKls4xUw|j6%RO!71_huyJns(NA(Yv-m3c-SUt4iDwvHiR8(X9#?N=+_%J{U|$NV@SPzurtSg$;h5d)+B6CK0E-@6(evtVxg0Nv1~vWBpiTX(Hpk zmoF;#Eu!9T)ad!W7gg{SmnRdtw@{-ed7Iwqr7$l!{u*O&i>0Mm^f~sIik64i`9|EoFZ)(5c{09lQp7cb{q-dJX{SwOdJor3NJM31 z)^b>!RC~+T>-ggDHbjLHXHviB-eRSQHUi0|oaJ$4h111VvJMfk$vzWSHOp~oD~tCL zkT%~MpL9Rm2?qxl?tGXeq!>%NHDUMpe0x|G3+b}u)l!2!4(Fxh3e?M=(OdIXWfN6{ z?prL)5Kl6sGCIAmjBO@2c{$CpX1e7``dvWq>V)3w9af^xK4TvMMvC3xc&>L6)}^x4 z5xJf+bqs|27~r4USFVp3rA9NQy7jFp@+!K-23A%2+NC)XlPWTuWdM-Li6;Z$ogbdE zzi7lfY{PBT8Dku`cJyYq?7E^i=>%R#(^4c>5PWRS3wbI~l{nBlk+EX!#$Wb1rs$-~ z;-@3!kOJw4rpm#jf}>~c!>CFH1L9kQwYy)a=f$Ny%fEkKIsbEYk{#(8>b9%5ZIFQM zc>RW}(J!m&`H>8@E#`jiHNnV|PuF2t!d@+Gv{GJGGL~Bs{sgUU?{A>qucRUeit4}> zZAIFRk5zma?s)BS+{@*Ecmdd<| z5E>g#yfW885C0;$KRB|M?Ud(O>f>Yf)NGdG0 zc~<}>Ku0X)`@6c`GNh?gjpcNmeVlLL4mBV+yA*+MuV}+v^76NPq|JQB<4*gdBZsry zBJ|g2l&Eow&eD*lcvgar54DqEaCBSH zsby{T1)X|DFc0a9e}~Pg*^pi5!)~bz&ZI`H@KDRdli@7jN!zh@r9S&B52=e5ZCeENb$u3n*^HH=?6&yr z6SsYj4%s{#s@Clr^+eN@4&vRk*As`0Q2E`XCVHoμB`lw7QiT=3 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 literal 0 HcmV?d00001 diff --git a/docs/img/plugin-logo.png b/docs/img/plugin-logo.png new file mode 100755 index 0000000000000000000000000000000000000000..404a4c2414c2acb377c1cb38ef273f14c3a9bc0a GIT binary patch literal 11458 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 literal 0 HcmV?d00001 diff --git a/docs/img/successful-build-rate.png b/docs/img/successful-build-rate.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8a3d47266bfa4ac3271312e409925d649d94f1 GIT binary patch literal 87974 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

$message

" + + "
" + } + + /** + * Return the text resource file content as String. + */ + fun getTemplate(fileName: String): String { + return getTextResourceContent("$fileName.html") + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/MathUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/MathUtils.kt new file mode 100644 index 00000000..6d1979e8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/MathUtils.kt @@ -0,0 +1,88 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +/** + * A collection of mathematics functions. + */ +object MathUtils { + + /** + * Calculate the Mean average of a long dataset. + */ + fun longMean(vararg dataset: Long): Long { + return longMean(dataset.toList()) + } + + /** + * Calculate the Mean average of a long dataset. + */ + fun longMean(dataset: List): Long { + if (dataset.isEmpty()) return 0 + return dataset.sum() / dataset.size + } + + /** + * Calculate the Median average of a long dataset. + */ + fun longMedian(dataset: List): Long { + if (dataset.isEmpty()) return 0 + return dataset.sorted().let { + if (it.size % 2 == 0) (it[it.size / 2] + it[(it.size - 1) / 2]) / 2 + else it[it.size / 2] + } + } + + /** + * Calculates the Median average of a float dataset. + */ + fun floatMedian(dataset: List): Float { + if (dataset.isEmpty()) return 0F + return dataset.sorted().let { + if (it.size % 2 == 0) ((it[it.size / 2] + it[(it.size - 1) / 2]) / 2) + else it[it.size / 2] + } + } + + /** + * Calculate the Median average of a long dataset. + */ + fun longMedian(vararg values: Long): Long { + return longMedian(values.toList()) + } + + /** + * Add to the value by defined percentage. + */ + fun sumWithPercentage(value: Long, percentage: Int): Long { + return value + ((value * percentage) / 100L) + } + + /** + * Deduct the value by defined percentage. + */ + fun deductWithPercentage(value: Long, percentage: Int): Long { + return value - ((value * percentage) / 100L) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/ProjectUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/ProjectUtils.kt new file mode 100644 index 00000000..972a461a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/ProjectUtils.kt @@ -0,0 +1,83 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The aboVe copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +import org.gradle.util.GradleVersion + +/** + * A collection of gradle project functions. + */ +object ProjectUtils { + + /** + * List of official Gradle versions. + */ + enum class GradleVersions(val versionNumber: String) { + V7_5_1("7.5.1"), + V7_5("7.5"), + V7_4_2("7.4.2"), + V7_4_1("7.4.1"), + V7_4("7.4"), + V7_3_3("7.3.3"), + V7_3_2("7.3.2"), + V7_3_1("7.3.1"), + V7_3("7.3"), + V7_2("7.2"), + V7_1_1("7.1.1"), + V7_1("7.1"), + V7_0_2("7.0.2"), + V7_0_1("7.0.1"), + V7_0("7.0"), + V6_9_2("6.9.2"), + V6_9_1("6.9.1"), + V6_9("6.9"), + V6_8_3("6.8.3"), + V6_8_2("6.8.2"), + V6_8_1("6.8.1"), + V6_8("6.8"), + V6_7_1("6.7.1"), + V6_7("6.7"), + V6_6_1("6.6.1"), + V6_6("6.6"), + V6_5_1("6.5.1"), + V6_5("6.5"), + V6_4_1("6.4.1"), + V6_4("6.4"), + V6_3("6.3"), + V6_2_2("6.2.2"), + V6_2_1("6.2.1"), + V6_2("6.2"), + V6_1_1("6.1.1"), + V6_1("6.1") + } + + /** + * Check the project Gradle version is compatible(above the entered gradle version). + */ + fun isCompatibleWith(version: GradleVersions): Boolean { + val projectGradleVersion = GradleVersion.current() + val minimumRequiredGradleVersion = GradleVersion.version(version.versionNumber) + return projectGradleVersion > minimumRequiredGradleVersion + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalCommandException.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalCommandException.kt new file mode 100644 index 00000000..14468551 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalCommandException.kt @@ -0,0 +1,27 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +class TerminalCommandException(cmd: String, e: Throwable): java.lang.RuntimeException() { + override val message: String = "Error executing $cmd with message $e" +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalUtils.kt new file mode 100644 index 00000000..6782b9a9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/TerminalUtils.kt @@ -0,0 +1,49 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +import java.io.BufferedReader +import java.io.InputStreamReader + +/** + * A collection of terminal functions. + */ +object TerminalUtils { + + /** + * Execute the command in terminal. + * + * @throws io.github.janbarari.gradle.utils.TerminalCommandException if the command execution failed. + */ + @kotlin.jvm.Throws(TerminalCommandException::class) + fun execCommand(cmd: String): String { + val runtime = Runtime.getRuntime() + try { + val reader = BufferedReader(InputStreamReader(runtime.exec(cmd).inputStream)) + return reader.readLine() + } catch (e: Exception) { + throw TerminalCommandException(cmd, e) + } + } + +} diff --git a/src/main/resources/build-status-metric-template.html b/src/main/resources/build-status-metric-template.html new file mode 100644 index 00000000..7fb6a456 --- /dev/null +++ b/src/main/resources/build-status-metric-template.html @@ -0,0 +1,180 @@ +

Build Status

+

An overview of metrics results of the `requested task` in the build processes over the aforementioned period.

+
+ +
+ + + + + + + +
+
+ Cumulative
Overall Build
Process +
%cumulative-build-process-duration%
+
+ +
+ + + + + + + +
+
+ Total
Build Process
Count +
%total-build-process-count%
+
+ +
+ + + + + + + +
+
+ Total
Modules
Count +
%total-modules-count%
+
+ +
+ + + + + + + +
+
+ Cumulative
Parallel Exec
Duration +
%cumulative-parallel-exec-duration%
+
+ +
+ + + + + + + +
+
+ Average
Parallel Exec
Rate +
%avg-parallel-exec-rate%
+
+ +
+ + + + + + + +
+
+ Total
Succeed | Failed
Builds +
+ %total-succeed-build-count% | %total-failed-build-count% +
+
+ +
+ + + + + + + +
+
+ Average
Cache Hit
Rate +
%avg-cache-hit-rate%
+
+ +
+ + + + + + + +
+
+ Cumulative
Dependency
Resolve +
%cumulative-dependency-resolve-duration%
+
+ +
+ + + + + + + +
+
+ Average
Overall Build
Process +
%avg-build-process-duration%
+
+ +
+ + + + + + + +
+
+ Average
Initialization
Process +
%avg-initialization-process-duration%
+
+ +
+ + + + + + + +
+
+ Average
Configuration
Process +
%avg-configuration-process-duration%
+
+ +
+ + + + + + + +
+
+ Average
Execution
Process +
%avg-execution-process-duration%
+
+
+ Cumulative Parallel Exec Duration represents the total execution of the parallel builds. +
+ Average Parallel Exec Rate represents the average parallel builds time over the report period. +
+ Cumulative Dependency Resolve represents the total dependencies resolving time. +
diff --git a/src/main/resources/cache-hit-metric-template.html b/src/main/resources/cache-hit-metric-template.html new file mode 100644 index 00000000..5a56ecd9 --- /dev/null +++ b/src/main/resources/cache-hit-metric-template.html @@ -0,0 +1,134 @@ +

Cache Hit

+

+ Gradle creates a cache for the executed task to be reused in the next incremental builds, + the more cached tasks lead to faster builds. +

+ It represents the project and modules tasks average cache hit rate (tasks run with FROM_CACHE or UP_TO_DATE). +

+
+ + +
+ + Higher is better + +
+
+
+
+ + + + + + + + %table-data% + + + + %overall-diff-rate% + +
#ModuleHitDiff Rate
Overall%overall-cache-hit%
+
+
+
+ +
+ + + + Best and Worst
+ (Green is best) +
+
+
+ Hit represents the cache usage of executed tasks within a module. +
+ Diff Rate shows the improvement in cache usage between the first and last execution over the report period. +
+ Best and Worst represents the module's most and least cache usage. +
diff --git a/src/main/resources/configuration-process-metric-template.html b/src/main/resources/configuration-process-metric-template.html new file mode 100644 index 00000000..625d6df7 --- /dev/null +++ b/src/main/resources/configuration-process-metric-template.html @@ -0,0 +1,70 @@ +

Configuration Process

+

+ Constructs and configures the task graph for the build and then determines which tasks need to run and in which + order, based on the task the user wants to run. Be careful about the tasks you register to the project and try to + make them cacheable. +

+ It shows the average configuration process time over the report period. +

+
+ + +
+ + Lower is better + +
diff --git a/src/main/resources/dependency-details-metric-template.html b/src/main/resources/dependency-details-metric-template.html new file mode 100644 index 00000000..f455f1b9 --- /dev/null +++ b/src/main/resources/dependency-details-metric-template.html @@ -0,0 +1,60 @@ +

Dependency Details

+

It represents the project(including all modules) dependencies with their sizes.

+
+
+
+ + + + + + + %table-dataset% + + + + +
#DependencySize
Total%cumulative-dependencies-size%
+ +
+
+
+ + +
+
+
diff --git a/src/main/resources/dependency-resolve-process-metric-template.html b/src/main/resources/dependency-resolve-process-metric-template.html new file mode 100644 index 00000000..7092b896 --- /dev/null +++ b/src/main/resources/dependency-resolve-process-metric-template.html @@ -0,0 +1,68 @@ +

Dependency Resolve Process

+

+ Downloading and resolving the project's dependencies is one of the configuration process' stages. + If the project has multiple third-party libraries dependencies, make sure that you have a good network speed. +

+ It represents the download(Dependency Resolve) process average duration during the report period. +

+
+ + +
+ + Lower is better + +
\ No newline at end of file diff --git a/src/main/resources/execution-process-metric-template.html b/src/main/resources/execution-process-metric-template.html new file mode 100644 index 00000000..fa873d88 --- /dev/null +++ b/src/main/resources/execution-process-metric-template.html @@ -0,0 +1,68 @@ +

Execution Process

+

+ Runs the selected tasks based on `requested tasks` task tree. Gradle executes `requested task` according to the + dependency order. +

+ It represents the Execution Process average duration during the report period. +

+
+ + +
+ + Lower is better + +
diff --git a/src/main/resources/index-template.html b/src/main/resources/index-template.html new file mode 100644 index 00000000..081ddfe7 --- /dev/null +++ b/src/main/resources/index-template.html @@ -0,0 +1,148 @@ + + + + + %root-project-name% Build Analytics Report + + + + + + + + + + + +
+ logo +

%root-project-name% Build Analytics Report

+

+ Analyze task + %task-path% + on branch + %branch% +

+

Head commit hash: %git-head-commit-hash%

+

Time period: %time-period-start% - %time-period-end%

+

Reported at: %reported-at%

+

Is on CI/CD: %is-ci%

+

Plugin version: %plugin-version%

+
+ +

ATTENTION

+ + To understand the metrics that plugin provides, It is required to understand Gradle basics and how this build + system works.
https://docs.gradle.org/current/userguide/what_is_gradle.html +
+
+ +

Things you should know

+
+

+ 1. Every process in the Gradle build system starts with a task, the `requested task` means the task you defined + to be analyzed. +
+ 2. Metrics are getting saved on daily basis and if build process executes in CI/CD, metrics will be saved in its caching database. +
+ 3. Plugin only holds the metrics results in the caching database up to one year. +
+ 4. It is recommended to keep track of the reports after important stages of your CI/CD or Local build in order to see the actual result. +
+ 5. You need to understand median/mean to be able to read the chart of metrics results. +
+ 6. Plugin runs the metrics process when `requested task` executed on branch you configured. +

+
+
+ +%build-status-metric% + +%initialization-process-metric% + +%configuration-process-metric% + +%dependency-resolve-process-metric% + +%execution-process-metric% + +%modules-execution-process-metric% + +%overall-build-process-metric% + +%modules-source-count-metric% + +%modules-source-size-metric% + +%modules-method-count-metric% + +%cache-hit-metric% + +%success-build-rate-metric% + +%modules-crash-count-metric% + +%parallel-execution-rate-metric% + +%modules-dependency-graph-metric% + +%modules-execution-timeline-metric% + +%modules-build-heatmap-metric% + +%dependency-details-metric% + +%non-cacheable-tasks-metric% + +
+
+

DISCLAIMER

+ + The report is provided "as is", without warranty of any kind, express or + implied, including but not limited to the warranties of merchantability, + fitness for a particular purpose and noninfringement. In no event shall the + authors or copyright holders be liable for any claim, damages or other + liability, whether in an action of contract, tort or otherwise, arising from, + out of or in connection with the report or the use or other dealings in the + report. + +
+
+ +
+ + + Gradle Analytics Plugin + + + Made with 🧡 for everyone, don't forget to support us ☝🏻 + + + MIT License | Copyright ©️ 2022 + + +
+ + diff --git a/src/main/resources/initialization-process-metric-template.html b/src/main/resources/initialization-process-metric-template.html new file mode 100644 index 00000000..f0fdc19e --- /dev/null +++ b/src/main/resources/initialization-process-metric-template.html @@ -0,0 +1,70 @@ +

Initialization Process

+

+ Gradle supports single and multi-project builds. During the initialization process, Gradle determines which + projects are going to + take part in the build, and creates a Project instance for each of these projects. By adding more projects or + modules the process will take longer. +

+ It denotes the average initialization process time over the report period. +

+
+ + +
+ + Lower is better + +
diff --git a/src/main/resources/modules-build-heatmap-template.html b/src/main/resources/modules-build-heatmap-template.html new file mode 100644 index 00000000..4df062bb --- /dev/null +++ b/src/main/resources/modules-build-heatmap-template.html @@ -0,0 +1,52 @@ +

Modules Build Heatmap

+

+ This plugin uses `Modules Cache Usage` and `Modules Dependency Graph` to generate this metric that shows how many + times a module was built during the report period. +

+ Each bar has the name of the module and the number of dependent modules, smaller warm bars lead to faster builds + as those modules with warm colors have more dependent modules. +

+ In addition, it helps to modify the modular structure by tracing the graph and finding the cause to avoid + rebuilding the modules that are most shared with others. +

+
+ + +
+ + Smaller Heat Bars Are Better + +
diff --git a/src/main/resources/modules-crash-count-metric-template.html b/src/main/resources/modules-crash-count-metric-template.html new file mode 100644 index 00000000..d188f13f --- /dev/null +++ b/src/main/resources/modules-crash-count-metric-template.html @@ -0,0 +1,46 @@ +

Modules Crash Count

+

+ It represents how many build failures happened during the `requested task` execution + caused by project modules during the report period. +

+
+ + +
+ + Smaller Bars Are Better + +
diff --git a/src/main/resources/modules-dependency-graph-metric-template.html b/src/main/resources/modules-dependency-graph-metric-template.html new file mode 100644 index 00000000..47d013d9 --- /dev/null +++ b/src/main/resources/modules-dependency-graph-metric-template.html @@ -0,0 +1,20 @@ +

Modules Dependency Graph

+

+ It represents the project module's dependency graph and their connection types. +

+ Modules have colors that warm colors have represents more dependent modules, + and It is recommended to have fewer warm color modules because by applying any change in these modules, all other + dependent modules need to rebuild and this cost + more time and resources from your machines and put the builds in queue. +

+
+ graph TB + + classDef blue fill:#99f0ff, stroke:#52cce0; + classDef yellow fill:#fcf8a2, stroke:#c4be40; + classDef orange fill:#fbc36f, stroke:#e4a13b; + classDef red fill:#ff8c7f, stroke:#e44c3b; + + %mermaid-commands% +
+
diff --git a/src/main/resources/modules-execution-process-metric-template.html b/src/main/resources/modules-execution-process-metric-template.html new file mode 100644 index 00000000..7962b38d --- /dev/null +++ b/src/main/resources/modules-execution-process-metric-template.html @@ -0,0 +1,72 @@ +

Modules Execution Process

+

It represents the (Median) process execution time of each module over the report period.

+
+ + +
+ + Lower is better + +
+
+ + + + + + + + + + + %table-data% +
#ModuleAvg DurationAvg Parallel DurationAvg Parallel RateAvg CoverageDuration Diff Rate
+
+
+ Avg Duration is the module's median average execution time. +
+ Avg Parallel Duration is the module's median average parallel execution time. +
+ Avg Parallel Rate is the module's median average parallel execution rate over the report period. +
+ Avg Coverage is the average duration rate of the module against overall build. +
+ Duration Diff Rate shows improvement percentage of the module's execution time between first and last execution over the report period. +
diff --git a/src/main/resources/modules-method-count-metric-template.html b/src/main/resources/modules-method-count-metric-template.html new file mode 100644 index 00000000..68f4a87e --- /dev/null +++ b/src/main/resources/modules-method-count-metric-template.html @@ -0,0 +1,66 @@ +

Modules Method Count

+

It represents the project and its modules source method count.

+
+
+
+ + + + + + + + + %table-data% + + + + + %total-diff-rate% + +
#ModuleCountCoverageDiff Rate
Total%total-method-count%Σ
+
+
+
+ + +
+
+
+ Coverage represents the ratio of the project source methods occupied with the module source methods.
+ Diff Rate represents the change rate of source methods during the report period. +
diff --git a/src/main/resources/modules-source-count-metric-template.html b/src/main/resources/modules-source-count-metric-template.html new file mode 100644 index 00000000..9a2f8dc6 --- /dev/null +++ b/src/main/resources/modules-source-count-metric-template.html @@ -0,0 +1,69 @@ +

Modules Source Count

+

+ It represents the project and its modules source file count. (files with extension of kt, java). +

+
+
+
+ + + + + + + + + %table-data% + + + + + %total-diff-rate% + +
#ModuleCountCoverageDiff Rate
Total%total-source-count%Σ
+
+
+
+ + +
+
+
+ Coverage represents the ratio of the project source occupied with the module source.
+ Diff Rate represents the change rate of source count during the report period. +
diff --git a/src/main/resources/modules-source-size-metric-template.html b/src/main/resources/modules-source-size-metric-template.html new file mode 100644 index 00000000..352c5691 --- /dev/null +++ b/src/main/resources/modules-source-size-metric-template.html @@ -0,0 +1,67 @@ +

Modules Source Size

+

It represents the project and its modules source file size.

+
+
+
+ + + + + + + + + %table-data% + + + + + %total-diff-rate% + +
#ModuleSizeCoverageDiff Rate
Total%total-source-size%kbΣ
+
+
+
+ + +
+
+
+ Coverage represents the ratio of the project source files size occupied with the module source files size.
+ Diff Rate represents the change rate of source files size during the report period. +
diff --git a/src/main/resources/modules-timeline-metric-template.html b/src/main/resources/modules-timeline-metric-template.html new file mode 100644 index 00000000..173aa1c8 --- /dev/null +++ b/src/main/resources/modules-timeline-metric-template.html @@ -0,0 +1,26 @@ +

Modules Execution Timeline

+

It represents the latest modules execution process timeline graph on %datetime%.

+
+ + + Gray color shows the cached tasks + +
diff --git a/src/main/resources/non-cacheable-tasks-metric-template.html b/src/main/resources/non-cacheable-tasks-metric-template.html new file mode 100644 index 00000000..d9868379 --- /dev/null +++ b/src/main/resources/non-cacheable-tasks-metric-template.html @@ -0,0 +1,46 @@ +

Non-cacheable Tasks

+

+ These tasks are executed in the `requested task` tree without being cached. Try to avoid creating tasks that are + not cacheable. Track this chart and detect tasks that are time-consuming. +

+
+ + +
+ + Smaller Bars Are Better + +
diff --git a/src/main/resources/overall-build-process-metric-template.html b/src/main/resources/overall-build-process-metric-template.html new file mode 100644 index 00000000..fe2c0090 --- /dev/null +++ b/src/main/resources/overall-build-process-metric-template.html @@ -0,0 +1,63 @@ +

Overall Build Process

+

It represents the average duration of overall build process.

+
+ + +
+ + Lower is better + +
diff --git a/src/main/resources/parallel-execution-rate-metric-template.html b/src/main/resources/parallel-execution-rate-metric-template.html new file mode 100644 index 00000000..a4039780 --- /dev/null +++ b/src/main/resources/parallel-execution-rate-metric-template.html @@ -0,0 +1,59 @@ +

Parallel Execution Rate

+

+ Gradle uses CPU cores to execute more tasks simultaneously, leading to a faster build. +

+ It represents a rate that how much time was saved in the execution of the build process with parallel execution + versus real elapsed time. +

+
+ + +
+ + Higher is better + +
diff --git a/src/main/resources/res/chart.js b/src/main/resources/res/chart.js new file mode 100644 index 00000000..b87d5ec8 --- /dev/null +++ b/src/main/resources/res/chart.js @@ -0,0 +1,11299 @@ +/*! + * Chart.js v3.8.2 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +!function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).Chart = e() +}(this, (function() { + "use strict"; + const t = "undefined" == typeof window ? function(t) { + return t() + } + : window.requestAnimationFrame; + function e(e, i, s) { + const n = s || (t=>Array.prototype.slice.call(t)); + let o = !1 + , a = []; + return function(...s) { + a = n(s), + o || (o = !0, + t.call(window, (()=>{ + o = !1, + e.apply(i, a) + } + ))) + } + } + function i(t, e) { + let i; + return function(...s) { + return e ? (clearTimeout(i), + i = setTimeout(t, e, s)) : t.apply(this, s), + e + } + } + const s = t=>"start" === t ? "left" : "end" === t ? "right" : "center" + , n = (t,e,i)=>"start" === t ? e : "end" === t ? i : (e + i) / 2 + , o = (t,e,i,s)=>t === (s ? "left" : "right") ? i : "center" === t ? (e + i) / 2 : e; + var a = new class { + constructor() { + this._request = null, + this._charts = new Map, + this._running = !1, + this._lastDate = void 0 + } + _notify(t, e, i, s) { + const n = e.listeners[s] + , o = e.duration; + n.forEach((s=>s({ + chart: t, + initial: e.initial, + numSteps: o, + currentStep: Math.min(i - e.start, o) + }))) + } + _refresh() { + this._request || (this._running = !0, + this._request = t.call(window, (()=>{ + this._update(), + this._request = null, + this._running && this._refresh() + } + ))) + } + _update(t=Date.now()) { + let e = 0; + this._charts.forEach(((i,s)=>{ + if (!i.running || !i.items.length) + return; + const n = i.items; + let o, a = n.length - 1, r = !1; + for (; a >= 0; --a) + o = n[a], + o._active ? (o._total > i.duration && (i.duration = o._total), + o.tick(t), + r = !0) : (n[a] = n[n.length - 1], + n.pop()); + r && (s.draw(), + this._notify(s, i, t, "progress")), + n.length || (i.running = !1, + this._notify(s, i, t, "complete"), + i.initial = !1), + e += n.length + } + )), + this._lastDate = t, + 0 === e && (this._running = !1) + } + _getAnims(t) { + const e = this._charts; + let i = e.get(t); + return i || (i = { + running: !1, + initial: !0, + items: [], + listeners: { + complete: [], + progress: [] + } + }, + e.set(t, i)), + i + } + listen(t, e, i) { + this._getAnims(t).listeners[e].push(i) + } + add(t, e) { + e && e.length && this._getAnims(t).items.push(...e) + } + has(t) { + return this._getAnims(t).items.length > 0 + } + start(t) { + const e = this._charts.get(t); + e && (e.running = !0, + e.start = Date.now(), + e.duration = e.items.reduce(((t,e)=>Math.max(t, e._duration)), 0), + this._refresh()) + } + running(t) { + if (!this._running) + return !1; + const e = this._charts.get(t); + return !!(e && e.running && e.items.length) + } + stop(t) { + const e = this._charts.get(t); + if (!e || !e.items.length) + return; + const i = e.items; + let s = i.length - 1; + for (; s >= 0; --s) + i[s].cancel(); + e.items = [], + this._notify(t, e, Date.now(), "complete") + } + remove(t) { + return this._charts.delete(t) + } + } + ; + /*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + */ + function r(t) { + return t + .5 | 0 + } + const l = (t,e,i)=>Math.max(Math.min(t, i), e); + function h(t) { + return l(r(2.55 * t), 0, 255) + } + function c(t) { + return l(r(255 * t), 0, 255) + } + function d(t) { + return l(r(t / 2.55) / 100, 0, 1) + } + function u(t) { + return l(r(100 * t), 0, 100) + } + const f = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, + a: 10, + b: 11, + c: 12, + d: 13, + e: 14, + f: 15 + } + , g = [..."0123456789ABCDEF"] + , p = t=>g[15 & t] + , m = t=>g[(240 & t) >> 4] + g[15 & t] + , b = t=>(240 & t) >> 4 == (15 & t); + function x(t) { + var e = (t=>b(t.r) && b(t.g) && b(t.b) && b(t.a))(t) ? p : m; + return t ? "#" + e(t.r) + e(t.g) + e(t.b) + ((t,e)=>t < 255 ? e(t) : "")(t.a, e) : void 0 + } + const _ = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/; + function y(t, e, i) { + const s = e * Math.min(i, 1 - i) + , n = (e,n=(e + t / 30) % 12)=>i - s * Math.max(Math.min(n - 3, 9 - n, 1), -1); + return [n(0), n(8), n(4)] + } + function v(t, e, i) { + const s = (s,n=(s + t / 60) % 6)=>i - i * e * Math.max(Math.min(n, 4 - n, 1), 0); + return [s(5), s(3), s(1)] + } + function w(t, e, i) { + const s = y(t, 1, .5); + let n; + for (e + i > 1 && (n = 1 / (e + i), + e *= n, + i *= n), + n = 0; n < 3; n++) + s[n] *= 1 - e - i, + s[n] += e; + return s + } + function M(t) { + const e = t.r / 255 + , i = t.g / 255 + , s = t.b / 255 + , n = Math.max(e, i, s) + , o = Math.min(e, i, s) + , a = (n + o) / 2; + let r, l, h; + return n !== o && (h = n - o, + l = a > .5 ? h / (2 - n - o) : h / (n + o), + r = function(t, e, i, s, n) { + return t === n ? (e - i) / s + (e < i ? 6 : 0) : e === n ? (i - t) / s + 2 : (t - e) / s + 4 + }(e, i, s, h, n), + r = 60 * r + .5), + [0 | r, l || 0, a] + } + function k(t, e, i, s) { + return (Array.isArray(e) ? t(e[0], e[1], e[2]) : t(e, i, s)).map(c) + } + function S(t, e, i) { + return k(y, t, e, i) + } + function P(t) { + return (t % 360 + 360) % 360 + } + function D(t) { + const e = _.exec(t); + let i, s = 255; + if (!e) + return; + e[5] !== i && (s = e[6] ? h(+e[5]) : c(+e[5])); + const n = P(+e[2]) + , o = +e[3] / 100 + , a = +e[4] / 100; + return i = "hwb" === e[1] ? function(t, e, i) { + return k(w, t, e, i) + }(n, o, a) : "hsv" === e[1] ? function(t, e, i) { + return k(v, t, e, i) + }(n, o, a) : S(n, o, a), + { + r: i[0], + g: i[1], + b: i[2], + a: s + } + } + const C = { + x: "dark", + Z: "light", + Y: "re", + X: "blu", + W: "gr", + V: "medium", + U: "slate", + A: "ee", + T: "ol", + S: "or", + B: "ra", + C: "lateg", + D: "ights", + R: "in", + Q: "turquois", + E: "hi", + P: "ro", + O: "al", + N: "le", + M: "de", + L: "yello", + F: "en", + K: "ch", + G: "arks", + H: "ea", + I: "ightg", + J: "wh" + } + , O = { + OiceXe: "f0f8ff", + antiquewEte: "faebd7", + aqua: "ffff", + aquamarRe: "7fffd4", + azuY: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "0", + blanKedOmond: "ffebcd", + Xe: "ff", + XeviTet: "8a2be2", + bPwn: "a52a2a", + burlywood: "deb887", + caMtXe: "5f9ea0", + KartYuse: "7fff00", + KocTate: "d2691e", + cSO: "ff7f50", + cSnflowerXe: "6495ed", + cSnsilk: "fff8dc", + crimson: "dc143c", + cyan: "ffff", + xXe: "8b", + xcyan: "8b8b", + xgTMnPd: "b8860b", + xWay: "a9a9a9", + xgYF: "6400", + xgYy: "a9a9a9", + xkhaki: "bdb76b", + xmagFta: "8b008b", + xTivegYF: "556b2f", + xSange: "ff8c00", + xScEd: "9932cc", + xYd: "8b0000", + xsOmon: "e9967a", + xsHgYF: "8fbc8f", + xUXe: "483d8b", + xUWay: "2f4f4f", + xUgYy: "2f4f4f", + xQe: "ced1", + xviTet: "9400d3", + dAppRk: "ff1493", + dApskyXe: "bfff", + dimWay: "696969", + dimgYy: "696969", + dodgerXe: "1e90ff", + fiYbrick: "b22222", + flSOwEte: "fffaf0", + foYstWAn: "228b22", + fuKsia: "ff00ff", + gaRsbSo: "dcdcdc", + ghostwEte: "f8f8ff", + gTd: "ffd700", + gTMnPd: "daa520", + Way: "808080", + gYF: "8000", + gYFLw: "adff2f", + gYy: "808080", + honeyMw: "f0fff0", + hotpRk: "ff69b4", + RdianYd: "cd5c5c", + Rdigo: "4b0082", + ivSy: "fffff0", + khaki: "f0e68c", + lavFMr: "e6e6fa", + lavFMrXsh: "fff0f5", + lawngYF: "7cfc00", + NmoncEffon: "fffacd", + ZXe: "add8e6", + ZcSO: "f08080", + Zcyan: "e0ffff", + ZgTMnPdLw: "fafad2", + ZWay: "d3d3d3", + ZgYF: "90ee90", + ZgYy: "d3d3d3", + ZpRk: "ffb6c1", + ZsOmon: "ffa07a", + ZsHgYF: "20b2aa", + ZskyXe: "87cefa", + ZUWay: "778899", + ZUgYy: "778899", + ZstAlXe: "b0c4de", + ZLw: "ffffe0", + lime: "ff00", + limegYF: "32cd32", + lRF: "faf0e6", + magFta: "ff00ff", + maPon: "800000", + VaquamarRe: "66cdaa", + VXe: "cd", + VScEd: "ba55d3", + VpurpN: "9370db", + VsHgYF: "3cb371", + VUXe: "7b68ee", + VsprRggYF: "fa9a", + VQe: "48d1cc", + VviTetYd: "c71585", + midnightXe: "191970", + mRtcYam: "f5fffa", + mistyPse: "ffe4e1", + moccasR: "ffe4b5", + navajowEte: "ffdead", + navy: "80", + Tdlace: "fdf5e6", + Tive: "808000", + TivedBb: "6b8e23", + Sange: "ffa500", + SangeYd: "ff4500", + ScEd: "da70d6", + pOegTMnPd: "eee8aa", + pOegYF: "98fb98", + pOeQe: "afeeee", + pOeviTetYd: "db7093", + papayawEp: "ffefd5", + pHKpuff: "ffdab9", + peru: "cd853f", + pRk: "ffc0cb", + plum: "dda0dd", + powMrXe: "b0e0e6", + purpN: "800080", + YbeccapurpN: "663399", + Yd: "ff0000", + Psybrown: "bc8f8f", + PyOXe: "4169e1", + saddNbPwn: "8b4513", + sOmon: "fa8072", + sandybPwn: "f4a460", + sHgYF: "2e8b57", + sHshell: "fff5ee", + siFna: "a0522d", + silver: "c0c0c0", + skyXe: "87ceeb", + UXe: "6a5acd", + UWay: "708090", + UgYy: "708090", + snow: "fffafa", + sprRggYF: "ff7f", + stAlXe: "4682b4", + tan: "d2b48c", + teO: "8080", + tEstN: "d8bfd8", + tomato: "ff6347", + Qe: "40e0d0", + viTet: "ee82ee", + JHt: "f5deb3", + wEte: "ffffff", + wEtesmoke: "f5f5f5", + Lw: "ffff00", + LwgYF: "9acd32" + }; + let A; + function T(t) { + A || (A = function() { + const t = {} + , e = Object.keys(O) + , i = Object.keys(C); + let s, n, o, a, r; + for (s = 0; s < e.length; s++) { + for (a = r = e[s], + n = 0; n < i.length; n++) + o = i[n], + r = r.replace(o, C[o]); + o = parseInt(O[a], 16), + t[r] = [o >> 16 & 255, o >> 8 & 255, 255 & o] + } + return t + }(), + A.transparent = [0, 0, 0, 0]); + const e = A[t.toLowerCase()]; + return e && { + r: e[0], + g: e[1], + b: e[2], + a: 4 === e.length ? e[3] : 255 + } + } + const L = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/; + const R = t=>t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055 + , E = t=>t <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4); + function I(t, e, i) { + if (t) { + let s = M(t); + s[e] = Math.max(0, Math.min(s[e] + s[e] * i, 0 === e ? 360 : 1)), + s = S(s), + t.r = s[0], + t.g = s[1], + t.b = s[2] + } + } + function z(t, e) { + return t ? Object.assign(e || {}, t) : t + } + function F(t) { + var e = { + r: 0, + g: 0, + b: 0, + a: 255 + }; + return Array.isArray(t) ? t.length >= 3 && (e = { + r: t[0], + g: t[1], + b: t[2], + a: 255 + }, + t.length > 3 && (e.a = c(t[3]))) : (e = z(t, { + r: 0, + g: 0, + b: 0, + a: 1 + })).a = c(e.a), + e + } + function B(t) { + return "r" === t.charAt(0) ? function(t) { + const e = L.exec(t); + let i, s, n, o = 255; + if (e) { + if (e[7] !== i) { + const t = +e[7]; + o = e[8] ? h(t) : l(255 * t, 0, 255) + } + return i = +e[1], + s = +e[3], + n = +e[5], + i = 255 & (e[2] ? h(i) : l(i, 0, 255)), + s = 255 & (e[4] ? h(s) : l(s, 0, 255)), + n = 255 & (e[6] ? h(n) : l(n, 0, 255)), + { + r: i, + g: s, + b: n, + a: o + } + } + }(t) : D(t) + } + class V { + constructor(t) { + if (t instanceof V) + return t; + const e = typeof t; + let i; + var s, n, o; + "object" === e ? i = F(t) : "string" === e && (o = (s = t).length, + "#" === s[0] && (4 === o || 5 === o ? n = { + r: 255 & 17 * f[s[1]], + g: 255 & 17 * f[s[2]], + b: 255 & 17 * f[s[3]], + a: 5 === o ? 17 * f[s[4]] : 255 + } : 7 !== o && 9 !== o || (n = { + r: f[s[1]] << 4 | f[s[2]], + g: f[s[3]] << 4 | f[s[4]], + b: f[s[5]] << 4 | f[s[6]], + a: 9 === o ? f[s[7]] << 4 | f[s[8]] : 255 + })), + i = n || T(t) || B(t)), + this._rgb = i, + this._valid = !!i + } + get valid() { + return this._valid + } + get rgb() { + var t = z(this._rgb); + return t && (t.a = d(t.a)), + t + } + set rgb(t) { + this._rgb = F(t) + } + rgbString() { + return this._valid ? (t = this._rgb) && (t.a < 255 ? `rgba(${t.r}, ${t.g}, ${t.b}, ${d(t.a)})` : `rgb(${t.r}, ${t.g}, ${t.b})`) : void 0; + var t + } + hexString() { + return this._valid ? x(this._rgb) : void 0 + } + hslString() { + return this._valid ? function(t) { + if (!t) + return; + const e = M(t) + , i = e[0] + , s = u(e[1]) + , n = u(e[2]); + return t.a < 255 ? `hsla(${i}, ${s}%, ${n}%, ${d(t.a)})` : `hsl(${i}, ${s}%, ${n}%)` + }(this._rgb) : void 0 + } + mix(t, e) { + if (t) { + const i = this.rgb + , s = t.rgb; + let n; + const o = e === n ? .5 : e + , a = 2 * o - 1 + , r = i.a - s.a + , l = ((a * r == -1 ? a : (a + r) / (1 + a * r)) + 1) / 2; + n = 1 - l, + i.r = 255 & l * i.r + n * s.r + .5, + i.g = 255 & l * i.g + n * s.g + .5, + i.b = 255 & l * i.b + n * s.b + .5, + i.a = o * i.a + (1 - o) * s.a, + this.rgb = i + } + return this + } + interpolate(t, e) { + return t && (this._rgb = function(t, e, i) { + const s = E(d(t.r)) + , n = E(d(t.g)) + , o = E(d(t.b)); + return { + r: c(R(s + i * (E(d(e.r)) - s))), + g: c(R(n + i * (E(d(e.g)) - n))), + b: c(R(o + i * (E(d(e.b)) - o))), + a: t.a + i * (e.a - t.a) + } + }(this._rgb, t._rgb, e)), + this + } + clone() { + return new V(this.rgb) + } + alpha(t) { + return this._rgb.a = c(t), + this + } + clearer(t) { + return this._rgb.a *= 1 - t, + this + } + greyscale() { + const t = this._rgb + , e = r(.3 * t.r + .59 * t.g + .11 * t.b); + return t.r = t.g = t.b = e, + this + } + opaquer(t) { + return this._rgb.a *= 1 + t, + this + } + negate() { + const t = this._rgb; + return t.r = 255 - t.r, + t.g = 255 - t.g, + t.b = 255 - t.b, + this + } + lighten(t) { + return I(this._rgb, 2, t), + this + } + darken(t) { + return I(this._rgb, 2, -t), + this + } + saturate(t) { + return I(this._rgb, 1, t), + this + } + desaturate(t) { + return I(this._rgb, 1, -t), + this + } + rotate(t) { + return function(t, e) { + var i = M(t); + i[0] = P(i[0] + e), + i = S(i), + t.r = i[0], + t.g = i[1], + t.b = i[2] + }(this._rgb, t), + this + } + } + function W(t) { + return new V(t) + } + function N(t) { + if (t && "object" == typeof t) { + const e = t.toString(); + return "[object CanvasPattern]" === e || "[object CanvasGradient]" === e + } + return !1 + } + function j(t) { + return N(t) ? t : W(t) + } + function H(t) { + return N(t) ? t : W(t).saturate(.5).darken(.1).hexString() + } + function $() {} + const Y = function() { + let t = 0; + return function() { + return t++ + } + }(); + function U(t) { + return null == t + } + function X(t) { + if (Array.isArray && Array.isArray(t)) + return !0; + const e = Object.prototype.toString.call(t); + return "[object" === e.slice(0, 7) && "Array]" === e.slice(-6) + } + function q(t) { + return null !== t && "[object Object]" === Object.prototype.toString.call(t) + } + const K = t=>("number" == typeof t || t instanceof Number) && isFinite(+t); + function G(t, e) { + return K(t) ? t : e + } + function Z(t, e) { + return void 0 === t ? e : t + } + const J = (t,e)=>"string" == typeof t && t.endsWith("%") ? parseFloat(t) / 100 : t / e + , Q = (t,e)=>"string" == typeof t && t.endsWith("%") ? parseFloat(t) / 100 * e : +t; + function tt(t, e, i) { + if (t && "function" == typeof t.call) + return t.apply(i, e) + } + function et(t, e, i, s) { + let n, o, a; + if (X(t)) + if (o = t.length, + s) + for (n = o - 1; n >= 0; n--) + e.call(i, t[n], n); + else + for (n = 0; n < o; n++) + e.call(i, t[n], n); + else if (q(t)) + for (a = Object.keys(t), + o = a.length, + n = 0; n < o; n++) + e.call(i, t[a[n]], a[n]) + } + function it(t, e) { + let i, s, n, o; + if (!t || !e || t.length !== e.length) + return !1; + for (i = 0, + s = t.length; i < s; ++i) + if (n = t[i], + o = e[i], + n.datasetIndex !== o.datasetIndex || n.index !== o.index) + return !1; + return !0 + } + function st(t) { + if (X(t)) + return t.map(st); + if (q(t)) { + const e = Object.create(null) + , i = Object.keys(t) + , s = i.length; + let n = 0; + for (; n < s; ++n) + e[i[n]] = st(t[i[n]]); + return e + } + return t + } + function nt(t) { + return -1 === ["__proto__", "prototype", "constructor"].indexOf(t) + } + function ot(t, e, i, s) { + if (!nt(t)) + return; + const n = e[t] + , o = i[t]; + q(n) && q(o) ? at(n, o, s) : e[t] = st(o) + } + function at(t, e, i) { + const s = X(e) ? e : [e] + , n = s.length; + if (!q(t)) + return t; + const o = (i = i || {}).merger || ot; + for (let a = 0; a < n; ++a) { + if (!q(e = s[a])) + continue; + const n = Object.keys(e); + for (let s = 0, a = n.length; s < a; ++s) + o(n[s], t, e, i) + } + return t + } + function rt(t, e) { + return at(t, e, { + merger: lt + }) + } + function lt(t, e, i) { + if (!nt(t)) + return; + const s = e[t] + , n = i[t]; + q(s) && q(n) ? rt(s, n) : Object.prototype.hasOwnProperty.call(e, t) || (e[t] = st(n)) + } + function ht(t, e) { + const i = t.indexOf(".", e); + return -1 === i ? t.length : i + } + function ct(t, e) { + if ("" === e) + return t; + let i = 0 + , s = ht(e, i); + for (; t && s > i; ) + t = t[e.slice(i, s)], + i = s + 1, + s = ht(e, i); + return t + } + function dt(t) { + return t.charAt(0).toUpperCase() + t.slice(1) + } + const ut = t=>void 0 !== t + , ft = t=>"function" == typeof t + , gt = (t,e)=>{ + if (t.size !== e.size) + return !1; + for (const i of t) + if (!e.has(i)) + return !1; + return !0 + } + ; + function pt(t) { + return "mouseup" === t.type || "click" === t.type || "contextmenu" === t.type + } + const mt = Object.create(null) + , bt = Object.create(null); + function xt(t, e) { + if (!e) + return t; + const i = e.split("."); + for (let e = 0, s = i.length; e < s; ++e) { + const s = i[e]; + t = t[s] || (t[s] = Object.create(null)) + } + return t + } + function _t(t, e, i) { + return "string" == typeof e ? at(xt(t, e), i) : at(xt(t, ""), e) + } + var yt = new class { + constructor(t) { + this.animation = void 0, + this.backgroundColor = "rgba(0,0,0,0.1)", + this.borderColor = "rgba(0,0,0,0.1)", + this.color = "#666", + this.datasets = {}, + this.devicePixelRatio = t=>t.chart.platform.getDevicePixelRatio(), + this.elements = {}, + this.events = ["mousemove", "mouseout", "click", "touchstart", "touchmove"], + this.font = { + family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", + size: 12, + style: "normal", + lineHeight: 1.2, + weight: null + }, + this.hover = {}, + this.hoverBackgroundColor = (t,e)=>H(e.backgroundColor), + this.hoverBorderColor = (t,e)=>H(e.borderColor), + this.hoverColor = (t,e)=>H(e.color), + this.indexAxis = "x", + this.interaction = { + mode: "nearest", + intersect: !0, + includeInvisible: !1 + }, + this.maintainAspectRatio = !0, + this.onHover = null, + this.onClick = null, + this.parsing = !0, + this.plugins = {}, + this.responsive = !0, + this.scale = void 0, + this.scales = {}, + this.showLine = !0, + this.drawActiveElementsOnTop = !0, + this.describe(t) + } + set(t, e) { + return _t(this, t, e) + } + get(t) { + return xt(this, t) + } + describe(t, e) { + return _t(bt, t, e) + } + override(t, e) { + return _t(mt, t, e) + } + route(t, e, i, s) { + const n = xt(this, t) + , o = xt(this, i) + , a = "_" + e; + Object.defineProperties(n, { + [a]: { + value: n[e], + writable: !0 + }, + [e]: { + enumerable: !0, + get() { + const t = this[a] + , e = o[s]; + return q(t) ? Object.assign({}, e, t) : Z(t, e) + }, + set(t) { + this[a] = t + } + } + }) + } + } + ({ + _scriptable: t=>!t.startsWith("on"), + _indexable: t=>"events" !== t, + hover: { + _fallback: "interaction" + }, + interaction: { + _scriptable: !1, + _indexable: !1 + } + }); + function vt(t, e, i) { + i = i || (i=>t[i] < e); + let s, n = t.length - 1, o = 0; + for (; n - o > 1; ) + s = o + n >> 1, + i(s) ? o = s : n = s; + return { + lo: o, + hi: n + } + } + const wt = (t,e,i)=>vt(t, i, (s=>t[s][e] < i)) + , Mt = (t,e,i)=>vt(t, i, (s=>t[s][e] >= i)); + function kt(t, e, i) { + let s = 0 + , n = t.length; + for (; s < n && t[s] < e; ) + s++; + for (; n > s && t[n - 1] > i; ) + n--; + return s > 0 || n < t.length ? t.slice(s, n) : t + } + const St = ["push", "pop", "shift", "splice", "unshift"]; + function Pt(t, e) { + t._chartjs ? t._chartjs.listeners.push(e) : (Object.defineProperty(t, "_chartjs", { + configurable: !0, + enumerable: !1, + value: { + listeners: [e] + } + }), + St.forEach((e=>{ + const i = "_onData" + dt(e) + , s = t[e]; + Object.defineProperty(t, e, { + configurable: !0, + enumerable: !1, + value(...e) { + const n = s.apply(this, e); + return t._chartjs.listeners.forEach((t=>{ + "function" == typeof t[i] && t[i](...e) + } + )), + n + } + }) + } + ))) + } + function Dt(t, e) { + const i = t._chartjs; + if (!i) + return; + const s = i.listeners + , n = s.indexOf(e); + -1 !== n && s.splice(n, 1), + s.length > 0 || (St.forEach((e=>{ + delete t[e] + } + )), + delete t._chartjs) + } + function Ct(t) { + const e = new Set; + let i, s; + for (i = 0, + s = t.length; i < s; ++i) + e.add(t[i]); + return e.size === s ? t : Array.from(e) + } + const Ot = Math.PI + , At = 2 * Ot + , Tt = At + Ot + , Lt = Number.POSITIVE_INFINITY + , Rt = Ot / 180 + , Et = Ot / 2 + , It = Ot / 4 + , zt = 2 * Ot / 3 + , Ft = Math.log10 + , Bt = Math.sign; + function Vt(t) { + const e = Math.round(t); + t = jt(t, e, t / 1e3) ? e : t; + const i = Math.pow(10, Math.floor(Ft(t))) + , s = t / i; + return (s <= 1 ? 1 : s <= 2 ? 2 : s <= 5 ? 5 : 10) * i + } + function Wt(t) { + const e = [] + , i = Math.sqrt(t); + let s; + for (s = 1; s < i; s++) + t % s == 0 && (e.push(s), + e.push(t / s)); + return i === (0 | i) && e.push(i), + e.sort(((t,e)=>t - e)).pop(), + e + } + function Nt(t) { + return !isNaN(parseFloat(t)) && isFinite(t) + } + function jt(t, e, i) { + return Math.abs(t - e) < i + } + function Ht(t, e) { + const i = Math.round(t); + return i - e <= t && i + e >= t + } + function $t(t, e, i) { + let s, n, o; + for (s = 0, + n = t.length; s < n; s++) + o = t[s][i], + isNaN(o) || (e.min = Math.min(e.min, o), + e.max = Math.max(e.max, o)) + } + function Yt(t) { + return t * (Ot / 180) + } + function Ut(t) { + return t * (180 / Ot) + } + function Xt(t) { + if (!K(t)) + return; + let e = 1 + , i = 0; + for (; Math.round(t * e) / e !== t; ) + e *= 10, + i++; + return i + } + function qt(t, e) { + const i = e.x - t.x + , s = e.y - t.y + , n = Math.sqrt(i * i + s * s); + let o = Math.atan2(s, i); + return o < -.5 * Ot && (o += At), + { + angle: o, + distance: n + } + } + function Kt(t, e) { + return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) + } + function Gt(t, e) { + return (t - e + Tt) % At - Ot + } + function Zt(t) { + return (t % At + At) % At + } + function Jt(t, e, i, s) { + const n = Zt(t) + , o = Zt(e) + , a = Zt(i) + , r = Zt(o - n) + , l = Zt(a - n) + , h = Zt(n - o) + , c = Zt(n - a); + return n === o || n === a || s && o === a || r > l && h < c + } + function Qt(t, e, i) { + return Math.max(e, Math.min(i, t)) + } + function te(t) { + return Qt(t, -32768, 32767) + } + function ee(t, e, i, s=1e-6) { + return t >= Math.min(e, i) - s && t <= Math.max(e, i) + s + } + function ie() { + return "undefined" != typeof window && "undefined" != typeof document + } + function se(t) { + let e = t.parentNode; + return e && "[object ShadowRoot]" === e.toString() && (e = e.host), + e + } + function ne(t, e, i) { + let s; + return "string" == typeof t ? (s = parseInt(t, 10), + -1 !== t.indexOf("%") && (s = s / 100 * e.parentNode[i])) : s = t, + s + } + const oe = t=>window.getComputedStyle(t, null); + function ae(t, e) { + return oe(t).getPropertyValue(e) + } + const re = ["top", "right", "bottom", "left"]; + function le(t, e, i) { + const s = {}; + i = i ? "-" + i : ""; + for (let n = 0; n < 4; n++) { + const o = re[n]; + s[o] = parseFloat(t[e + "-" + o + i]) || 0 + } + return s.width = s.left + s.right, + s.height = s.top + s.bottom, + s + } + function he(t, e) { + if ("native"in t) + return t; + const {canvas: i, currentDevicePixelRatio: s} = e + , n = oe(i) + , o = "border-box" === n.boxSizing + , a = le(n, "padding") + , r = le(n, "border", "width") + , {x: l, y: h, box: c} = function(t, e) { + const i = t.touches + , s = i && i.length ? i[0] : t + , {offsetX: n, offsetY: o} = s; + let a, r, l = !1; + if (((t,e,i)=>(t > 0 || e > 0) && (!i || !i.shadowRoot))(n, o, t.target)) + a = n, + r = o; + else { + const t = e.getBoundingClientRect(); + a = s.clientX - t.left, + r = s.clientY - t.top, + l = !0 + } + return { + x: a, + y: r, + box: l + } + }(t, i) + , d = a.left + (c && r.left) + , u = a.top + (c && r.top); + let {width: f, height: g} = e; + return o && (f -= a.width + r.width, + g -= a.height + r.height), + { + x: Math.round((l - d) / f * i.width / s), + y: Math.round((h - u) / g * i.height / s) + } + } + const ce = t=>Math.round(10 * t) / 10; + function de(t, e, i, s) { + const n = oe(t) + , o = le(n, "margin") + , a = ne(n.maxWidth, t, "clientWidth") || Lt + , r = ne(n.maxHeight, t, "clientHeight") || Lt + , l = function(t, e, i) { + let s, n; + if (void 0 === e || void 0 === i) { + const o = se(t); + if (o) { + const t = o.getBoundingClientRect() + , a = oe(o) + , r = le(a, "border", "width") + , l = le(a, "padding"); + e = t.width - l.width - r.width, + i = t.height - l.height - r.height, + s = ne(a.maxWidth, o, "clientWidth"), + n = ne(a.maxHeight, o, "clientHeight") + } else + e = t.clientWidth, + i = t.clientHeight + } + return { + width: e, + height: i, + maxWidth: s || Lt, + maxHeight: n || Lt + } + }(t, e, i); + let {width: h, height: c} = l; + if ("content-box" === n.boxSizing) { + const t = le(n, "border", "width") + , e = le(n, "padding"); + h -= e.width + t.width, + c -= e.height + t.height + } + return h = Math.max(0, h - o.width), + c = Math.max(0, s ? Math.floor(h / s) : c - o.height), + h = ce(Math.min(h, a, l.maxWidth)), + c = ce(Math.min(c, r, l.maxHeight)), + h && !c && (c = ce(h / 2)), + { + width: h, + height: c + } + } + function ue(t, e, i) { + const s = e || 1 + , n = Math.floor(t.height * s) + , o = Math.floor(t.width * s); + t.height = n / s, + t.width = o / s; + const a = t.canvas; + return a.style && (i || !a.style.height && !a.style.width) && (a.style.height = `${t.height}px`, + a.style.width = `${t.width}px`), + (t.currentDevicePixelRatio !== s || a.height !== n || a.width !== o) && (t.currentDevicePixelRatio = s, + a.height = n, + a.width = o, + t.ctx.setTransform(s, 0, 0, s, 0, 0), + !0) + } + const fe = function() { + let t = !1; + try { + const e = { + get passive() { + return t = !0, + !1 + } + }; + window.addEventListener("test", null, e), + window.removeEventListener("test", null, e) + } catch (t) {} + return t + }(); + function ge(t, e) { + const i = ae(t, e) + , s = i && i.match(/^(\d+)(\.\d+)?px$/); + return s ? +s[1] : void 0 + } + function pe(t) { + return !t || U(t.size) || U(t.family) ? null : (t.style ? t.style + " " : "") + (t.weight ? t.weight + " " : "") + t.size + "px " + t.family + } + function me(t, e, i, s, n) { + let o = e[n]; + return o || (o = e[n] = t.measureText(n).width, + i.push(n)), + o > s && (s = o), + s + } + function be(t, e, i, s) { + let n = (s = s || {}).data = s.data || {} + , o = s.garbageCollect = s.garbageCollect || []; + s.font !== e && (n = s.data = {}, + o = s.garbageCollect = [], + s.font = e), + t.save(), + t.font = e; + let a = 0; + const r = i.length; + let l, h, c, d, u; + for (l = 0; l < r; l++) + if (d = i[l], + null != d && !0 !== X(d)) + a = me(t, n, o, a, d); + else if (X(d)) + for (h = 0, + c = d.length; h < c; h++) + u = d[h], + null == u || X(u) || (a = me(t, n, o, a, u)); + t.restore(); + const f = o.length / 2; + if (f > i.length) { + for (l = 0; l < f; l++) + delete n[o[l]]; + o.splice(0, f) + } + return a + } + function xe(t, e, i) { + const s = t.currentDevicePixelRatio + , n = 0 !== i ? Math.max(i / 2, .5) : 0; + return Math.round((e - n) * s) / s + n + } + function _e(t, e) { + (e = e || t.getContext("2d")).save(), + e.resetTransform(), + e.clearRect(0, 0, t.width, t.height), + e.restore() + } + function ye(t, e, i, s) { + ve(t, e, i, s, null) + } + function ve(t, e, i, s, n) { + let o, a, r, l, h, c; + const d = e.pointStyle + , u = e.rotation + , f = e.radius; + let g = (u || 0) * Rt; + if (d && "object" == typeof d && (o = d.toString(), + "[object HTMLImageElement]" === o || "[object HTMLCanvasElement]" === o)) + return t.save(), + t.translate(i, s), + t.rotate(g), + t.drawImage(d, -d.width / 2, -d.height / 2, d.width, d.height), + void t.restore(); + if (!(isNaN(f) || f <= 0)) { + switch (t.beginPath(), + d) { + default: + n ? t.ellipse(i, s, n / 2, f, 0, 0, At) : t.arc(i, s, f, 0, At), + t.closePath(); + break; + case "triangle": + t.moveTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + g += zt, + t.lineTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + g += zt, + t.lineTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + t.closePath(); + break; + case "rectRounded": + h = .516 * f, + l = f - h, + a = Math.cos(g + It) * l, + r = Math.sin(g + It) * l, + t.arc(i - a, s - r, h, g - Ot, g - Et), + t.arc(i + r, s - a, h, g - Et, g), + t.arc(i + a, s + r, h, g, g + Et), + t.arc(i - r, s + a, h, g + Et, g + Ot), + t.closePath(); + break; + case "rect": + if (!u) { + l = Math.SQRT1_2 * f, + c = n ? n / 2 : l, + t.rect(i - c, s - l, 2 * c, 2 * l); + break + } + g += It; + case "rectRot": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + r, s - a), + t.lineTo(i + a, s + r), + t.lineTo(i - r, s + a), + t.closePath(); + break; + case "crossRot": + g += It; + case "cross": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a); + break; + case "star": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a), + g += It, + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a); + break; + case "line": + a = n ? n / 2 : Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r); + break; + case "dash": + t.moveTo(i, s), + t.lineTo(i + Math.cos(g) * f, s + Math.sin(g) * f) + } + t.fill(), + e.borderWidth > 0 && t.stroke() + } + } + function we(t, e, i) { + return i = i || .5, + !e || t && t.x > e.left - i && t.x < e.right + i && t.y > e.top - i && t.y < e.bottom + i + } + function Me(t, e) { + t.save(), + t.beginPath(), + t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), + t.clip() + } + function ke(t) { + t.restore() + } + function Se(t, e, i, s, n) { + if (!e) + return t.lineTo(i.x, i.y); + if ("middle" === n) { + const s = (e.x + i.x) / 2; + t.lineTo(s, e.y), + t.lineTo(s, i.y) + } else + "after" === n != !!s ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y); + t.lineTo(i.x, i.y) + } + function Pe(t, e, i, s) { + if (!e) + return t.lineTo(i.x, i.y); + t.bezierCurveTo(s ? e.cp1x : e.cp2x, s ? e.cp1y : e.cp2y, s ? i.cp2x : i.cp1x, s ? i.cp2y : i.cp1y, i.x, i.y) + } + function De(t, e, i, s, n, o={}) { + const a = X(e) ? e : [e] + , r = o.strokeWidth > 0 && "" !== o.strokeColor; + let l, h; + for (t.save(), + t.font = n.string, + function(t, e) { + e.translation && t.translate(e.translation[0], e.translation[1]); + U(e.rotation) || t.rotate(e.rotation); + e.color && (t.fillStyle = e.color); + e.textAlign && (t.textAlign = e.textAlign); + e.textBaseline && (t.textBaseline = e.textBaseline) + }(t, o), + l = 0; l < a.length; ++l) + h = a[l], + r && (o.strokeColor && (t.strokeStyle = o.strokeColor), + U(o.strokeWidth) || (t.lineWidth = o.strokeWidth), + t.strokeText(h, i, s, o.maxWidth)), + t.fillText(h, i, s, o.maxWidth), + Ce(t, i, s, h, o), + s += n.lineHeight; + t.restore() + } + function Ce(t, e, i, s, n) { + if (n.strikethrough || n.underline) { + const o = t.measureText(s) + , a = e - o.actualBoundingBoxLeft + , r = e + o.actualBoundingBoxRight + , l = i - o.actualBoundingBoxAscent + , h = i + o.actualBoundingBoxDescent + , c = n.strikethrough ? (l + h) / 2 : h; + t.strokeStyle = t.fillStyle, + t.beginPath(), + t.lineWidth = n.decorationWidth || 2, + t.moveTo(a, c), + t.lineTo(r, c), + t.stroke() + } + } + function Oe(t, e) { + const {x: i, y: s, w: n, h: o, radius: a} = e; + t.arc(i + a.topLeft, s + a.topLeft, a.topLeft, -Et, Ot, !0), + t.lineTo(i, s + o - a.bottomLeft), + t.arc(i + a.bottomLeft, s + o - a.bottomLeft, a.bottomLeft, Ot, Et, !0), + t.lineTo(i + n - a.bottomRight, s + o), + t.arc(i + n - a.bottomRight, s + o - a.bottomRight, a.bottomRight, Et, 0, !0), + t.lineTo(i + n, s + a.topRight), + t.arc(i + n - a.topRight, s + a.topRight, a.topRight, 0, -Et, !0), + t.lineTo(i + a.topLeft, s) + } + function Ae(t, e=[""], i=t, s, n=(()=>t[0])) { + ut(s) || (s = Ne("_fallback", t)); + const o = { + [Symbol.toStringTag]: "Object", + _cacheable: !0, + _scopes: t, + _rootScopes: i, + _fallback: s, + _getTarget: n, + override: n=>Ae([n, ...t], e, i, s) + }; + return new Proxy(o,{ + deleteProperty: (e,i)=>(delete e[i], + delete e._keys, + delete t[0][i], + !0), + get: (i,s)=>Ie(i, s, (()=>function(t, e, i, s) { + let n; + for (const o of e) + if (n = Ne(Re(o, t), i), + ut(n)) + return Ee(t, n) ? Ve(i, s, t, n) : n + }(s, e, t, i))), + getOwnPropertyDescriptor: (t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0], e), + getPrototypeOf: ()=>Reflect.getPrototypeOf(t[0]), + has: (t,e)=>je(t).includes(e), + ownKeys: t=>je(t), + set(t, e, i) { + const s = t._storage || (t._storage = n()); + return t[e] = s[e] = i, + delete t._keys, + !0 + } + }) + } + function Te(t, e, i, s) { + const n = { + _cacheable: !1, + _proxy: t, + _context: e, + _subProxy: i, + _stack: new Set, + _descriptors: Le(t, s), + setContext: e=>Te(t, e, i, s), + override: n=>Te(t.override(n), e, i, s) + }; + return new Proxy(n,{ + deleteProperty: (e,i)=>(delete e[i], + delete t[i], + !0), + get: (t,e,i)=>Ie(t, e, (()=>function(t, e, i) { + const {_proxy: s, _context: n, _subProxy: o, _descriptors: a} = t; + let r = s[e]; + ft(r) && a.isScriptable(e) && (r = function(t, e, i, s) { + const {_proxy: n, _context: o, _subProxy: a, _stack: r} = i; + if (r.has(t)) + throw new Error("Recursion detected: " + Array.from(r).join("->") + "->" + t); + r.add(t), + e = e(o, a || s), + r.delete(t), + Ee(t, e) && (e = Ve(n._scopes, n, t, e)); + return e + }(e, r, t, i)); + X(r) && r.length && (r = function(t, e, i, s) { + const {_proxy: n, _context: o, _subProxy: a, _descriptors: r} = i; + if (ut(o.index) && s(t)) + e = e[o.index % e.length]; + else if (q(e[0])) { + const i = e + , s = n._scopes.filter((t=>t !== i)); + e = []; + for (const l of i) { + const i = Ve(s, n, t, l); + e.push(Te(i, o, a && a[t], r)) + } + } + return e + }(e, r, t, a.isIndexable)); + Ee(e, r) && (r = Te(r, n, o && o[e], a)); + return r + }(t, e, i))), + getOwnPropertyDescriptor: (e,i)=>e._descriptors.allKeys ? Reflect.has(t, i) ? { + enumerable: !0, + configurable: !0 + } : void 0 : Reflect.getOwnPropertyDescriptor(t, i), + getPrototypeOf: ()=>Reflect.getPrototypeOf(t), + has: (e,i)=>Reflect.has(t, i), + ownKeys: ()=>Reflect.ownKeys(t), + set: (e,i,s)=>(t[i] = s, + delete e[i], + !0) + }) + } + function Le(t, e={ + scriptable: !0, + indexable: !0 + }) { + const {_scriptable: i=e.scriptable, _indexable: s=e.indexable, _allKeys: n=e.allKeys} = t; + return { + allKeys: n, + scriptable: i, + indexable: s, + isScriptable: ft(i) ? i : ()=>i, + isIndexable: ft(s) ? s : ()=>s + } + } + const Re = (t,e)=>t ? t + dt(e) : e + , Ee = (t,e)=>q(e) && "adapters" !== t && (null === Object.getPrototypeOf(e) || e.constructor === Object); + function Ie(t, e, i) { + if (Object.prototype.hasOwnProperty.call(t, e)) + return t[e]; + const s = i(); + return t[e] = s, + s + } + function ze(t, e, i) { + return ft(t) ? t(e, i) : t + } + const Fe = (t,e)=>!0 === t ? e : "string" == typeof t ? ct(e, t) : void 0; + function Be(t, e, i, s, n) { + for (const o of e) { + const e = Fe(i, o); + if (e) { + t.add(e); + const o = ze(e._fallback, i, n); + if (ut(o) && o !== i && o !== s) + return o + } else if (!1 === e && ut(s) && i !== s) + return null + } + return !1 + } + function Ve(t, e, i, s) { + const n = e._rootScopes + , o = ze(e._fallback, i, s) + , a = [...t, ...n] + , r = new Set; + r.add(s); + let l = We(r, a, i, o || i, s); + return null !== l && ((!ut(o) || o === i || (l = We(r, a, o, l, s), + null !== l)) && Ae(Array.from(r), [""], n, o, (()=>function(t, e, i) { + const s = t._getTarget(); + e in s || (s[e] = {}); + const n = s[e]; + if (X(n) && q(i)) + return i; + return n + }(e, i, s)))) + } + function We(t, e, i, s, n) { + for (; i; ) + i = Be(t, e, i, s, n); + return i + } + function Ne(t, e) { + for (const i of e) { + if (!i) + continue; + const e = i[t]; + if (ut(e)) + return e + } + } + function je(t) { + let e = t._keys; + return e || (e = t._keys = function(t) { + const e = new Set; + for (const i of t) + for (const t of Object.keys(i).filter((t=>!t.startsWith("_")))) + e.add(t); + return Array.from(e) + }(t._scopes)), + e + } + function He(t, e, i, s) { + const {iScale: n} = t + , {key: o="r"} = this._parsing + , a = new Array(s); + let r, l, h, c; + for (r = 0, + l = s; r < l; ++r) + h = r + i, + c = e[h], + a[r] = { + r: n.parse(ct(c, o), h) + }; + return a + } + const $e = Number.EPSILON || 1e-14 + , Ye = (t,e)=>e < t.length && !t[e].skip && t[e] + , Ue = t=>"x" === t ? "y" : "x"; + function Xe(t, e, i, s) { + const n = t.skip ? e : t + , o = e + , a = i.skip ? e : i + , r = Kt(o, n) + , l = Kt(a, o); + let h = r / (r + l) + , c = l / (r + l); + h = isNaN(h) ? 0 : h, + c = isNaN(c) ? 0 : c; + const d = s * h + , u = s * c; + return { + previous: { + x: o.x - d * (a.x - n.x), + y: o.y - d * (a.y - n.y) + }, + next: { + x: o.x + u * (a.x - n.x), + y: o.y + u * (a.y - n.y) + } + } + } + function qe(t, e="x") { + const i = Ue(e) + , s = t.length + , n = Array(s).fill(0) + , o = Array(s); + let a, r, l, h = Ye(t, 0); + for (a = 0; a < s; ++a) + if (r = l, + l = h, + h = Ye(t, a + 1), + l) { + if (h) { + const t = h[e] - l[e]; + n[a] = 0 !== t ? (h[i] - l[i]) / t : 0 + } + o[a] = r ? h ? Bt(n[a - 1]) !== Bt(n[a]) ? 0 : (n[a - 1] + n[a]) / 2 : n[a - 1] : n[a] + } + !function(t, e, i) { + const s = t.length; + let n, o, a, r, l, h = Ye(t, 0); + for (let c = 0; c < s - 1; ++c) + l = h, + h = Ye(t, c + 1), + l && h && (jt(e[c], 0, $e) ? i[c] = i[c + 1] = 0 : (n = i[c] / e[c], + o = i[c + 1] / e[c], + r = Math.pow(n, 2) + Math.pow(o, 2), + r <= 9 || (a = 3 / Math.sqrt(r), + i[c] = n * a * e[c], + i[c + 1] = o * a * e[c]))) + }(t, n, o), + function(t, e, i="x") { + const s = Ue(i) + , n = t.length; + let o, a, r, l = Ye(t, 0); + for (let h = 0; h < n; ++h) { + if (a = r, + r = l, + l = Ye(t, h + 1), + !r) + continue; + const n = r[i] + , c = r[s]; + a && (o = (n - a[i]) / 3, + r[`cp1${i}`] = n - o, + r[`cp1${s}`] = c - o * e[h]), + l && (o = (l[i] - n) / 3, + r[`cp2${i}`] = n + o, + r[`cp2${s}`] = c + o * e[h]) + } + }(t, o, e) + } + function Ke(t, e, i) { + return Math.max(Math.min(t, i), e) + } + function Ge(t, e, i, s, n) { + let o, a, r, l; + if (e.spanGaps && (t = t.filter((t=>!t.skip))), + "monotone" === e.cubicInterpolationMode) + qe(t, n); + else { + let i = s ? t[t.length - 1] : t[0]; + for (o = 0, + a = t.length; o < a; ++o) + r = t[o], + l = Xe(i, r, t[Math.min(o + 1, a - (s ? 0 : 1)) % a], e.tension), + r.cp1x = l.previous.x, + r.cp1y = l.previous.y, + r.cp2x = l.next.x, + r.cp2y = l.next.y, + i = r + } + e.capBezierPoints && function(t, e) { + let i, s, n, o, a, r = we(t[0], e); + for (i = 0, + s = t.length; i < s; ++i) + a = o, + o = r, + r = i < s - 1 && we(t[i + 1], e), + o && (n = t[i], + a && (n.cp1x = Ke(n.cp1x, e.left, e.right), + n.cp1y = Ke(n.cp1y, e.top, e.bottom)), + r && (n.cp2x = Ke(n.cp2x, e.left, e.right), + n.cp2y = Ke(n.cp2y, e.top, e.bottom))) + }(t, i) + } + const Ze = t=>0 === t || 1 === t + , Je = (t,e,i)=>-Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * At / i) + , Qe = (t,e,i)=>Math.pow(2, -10 * t) * Math.sin((t - e) * At / i) + 1 + , ti = { + linear: t=>t, + easeInQuad: t=>t * t, + easeOutQuad: t=>-t * (t - 2), + easeInOutQuad: t=>(t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1), + easeInCubic: t=>t * t * t, + easeOutCubic: t=>(t -= 1) * t * t + 1, + easeInOutCubic: t=>(t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2), + easeInQuart: t=>t * t * t * t, + easeOutQuart: t=>-((t -= 1) * t * t * t - 1), + easeInOutQuart: t=>(t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2), + easeInQuint: t=>t * t * t * t * t, + easeOutQuint: t=>(t -= 1) * t * t * t * t + 1, + easeInOutQuint: t=>(t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2), + easeInSine: t=>1 - Math.cos(t * Et), + easeOutSine: t=>Math.sin(t * Et), + easeInOutSine: t=>-.5 * (Math.cos(Ot * t) - 1), + easeInExpo: t=>0 === t ? 0 : Math.pow(2, 10 * (t - 1)), + easeOutExpo: t=>1 === t ? 1 : 1 - Math.pow(2, -10 * t), + easeInOutExpo: t=>Ze(t) ? t : t < .5 ? .5 * Math.pow(2, 10 * (2 * t - 1)) : .5 * (2 - Math.pow(2, -10 * (2 * t - 1))), + easeInCirc: t=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1), + easeOutCirc: t=>Math.sqrt(1 - (t -= 1) * t), + easeInOutCirc: t=>(t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1), + easeInElastic: t=>Ze(t) ? t : Je(t, .075, .3), + easeOutElastic: t=>Ze(t) ? t : Qe(t, .075, .3), + easeInOutElastic(t) { + const e = .1125; + return Ze(t) ? t : t < .5 ? .5 * Je(2 * t, e, .45) : .5 + .5 * Qe(2 * t - 1, e, .45) + }, + easeInBack(t) { + const e = 1.70158; + return t * t * ((e + 1) * t - e) + }, + easeOutBack(t) { + const e = 1.70158; + return (t -= 1) * t * ((e + 1) * t + e) + 1 + }, + easeInOutBack(t) { + let e = 1.70158; + return (t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2) + }, + easeInBounce: t=>1 - ti.easeOutBounce(1 - t), + easeOutBounce(t) { + const e = 7.5625 + , i = 2.75; + return t < 1 / i ? e * t * t : t < 2 / i ? e * (t -= 1.5 / i) * t + .75 : t < 2.5 / i ? e * (t -= 2.25 / i) * t + .9375 : e * (t -= 2.625 / i) * t + .984375 + }, + easeInOutBounce: t=>t < .5 ? .5 * ti.easeInBounce(2 * t) : .5 * ti.easeOutBounce(2 * t - 1) + .5 + }; + function ei(t, e, i, s) { + return { + x: t.x + i * (e.x - t.x), + y: t.y + i * (e.y - t.y) + } + } + function ii(t, e, i, s) { + return { + x: t.x + i * (e.x - t.x), + y: "middle" === s ? i < .5 ? t.y : e.y : "after" === s ? i < 1 ? t.y : e.y : i > 0 ? e.y : t.y + } + } + function si(t, e, i, s) { + const n = { + x: t.cp2x, + y: t.cp2y + } + , o = { + x: e.cp1x, + y: e.cp1y + } + , a = ei(t, n, i) + , r = ei(n, o, i) + , l = ei(o, e, i) + , h = ei(a, r, i) + , c = ei(r, l, i); + return ei(h, c, i) + } + const ni = new Map; + function oi(t, e, i) { + return function(t, e) { + e = e || {}; + const i = t + JSON.stringify(e); + let s = ni.get(i); + return s || (s = new Intl.NumberFormat(t,e), + ni.set(i, s)), + s + }(e, i).format(t) + } + const ai = new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/) + , ri = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/); + function li(t, e) { + const i = ("" + t).match(ai); + if (!i || "normal" === i[1]) + return 1.2 * e; + switch (t = +i[2], + i[3]) { + case "px": + return t; + case "%": + t /= 100 + } + return e * t + } + function hi(t, e) { + const i = {} + , s = q(e) + , n = s ? Object.keys(e) : e + , o = q(t) ? s ? i=>Z(t[i], t[e[i]]) : e=>t[e] : ()=>t; + for (const t of n) + i[t] = +o(t) || 0; + return i + } + function ci(t) { + return hi(t, { + top: "y", + right: "x", + bottom: "y", + left: "x" + }) + } + function di(t) { + return hi(t, ["topLeft", "topRight", "bottomLeft", "bottomRight"]) + } + function ui(t) { + const e = ci(t); + return e.width = e.left + e.right, + e.height = e.top + e.bottom, + e + } + function fi(t, e) { + t = t || {}, + e = e || yt.font; + let i = Z(t.size, e.size); + "string" == typeof i && (i = parseInt(i, 10)); + let s = Z(t.style, e.style); + s && !("" + s).match(ri) && (console.warn('Invalid font style specified: "' + s + '"'), + s = ""); + const n = { + family: Z(t.family, e.family), + lineHeight: li(Z(t.lineHeight, e.lineHeight), i), + size: i, + style: s, + weight: Z(t.weight, e.weight), + string: "" + }; + return n.string = pe(n), + n + } + function gi(t, e, i, s) { + let n, o, a, r = !0; + for (n = 0, + o = t.length; n < o; ++n) + if (a = t[n], + void 0 !== a && (void 0 !== e && "function" == typeof a && (a = a(e), + r = !1), + void 0 !== i && X(a) && (a = a[i % a.length], + r = !1), + void 0 !== a)) + return s && !r && (s.cacheable = !1), + a + } + function pi(t, e, i) { + const {min: s, max: n} = t + , o = Q(e, (n - s) / 2) + , a = (t,e)=>i && 0 === t ? 0 : t + e; + return { + min: a(s, -Math.abs(o)), + max: a(n, o) + } + } + function mi(t, e) { + return Object.assign(Object.create(t), e) + } + function bi(t, e, i) { + return t ? function(t, e) { + return { + x: i=>t + t + e - i, + setWidth(t) { + e = t + }, + textAlign: t=>"center" === t ? t : "right" === t ? "left" : "right", + xPlus: (t,e)=>t - e, + leftForLtr: (t,e)=>t - e + } + }(e, i) : { + x: t=>t, + setWidth(t) {}, + textAlign: t=>t, + xPlus: (t,e)=>t + e, + leftForLtr: (t,e)=>t + } + } + function xi(t, e) { + let i, s; + "ltr" !== e && "rtl" !== e || (i = t.canvas.style, + s = [i.getPropertyValue("direction"), i.getPropertyPriority("direction")], + i.setProperty("direction", e, "important"), + t.prevTextDirection = s) + } + function _i(t, e) { + void 0 !== e && (delete t.prevTextDirection, + t.canvas.style.setProperty("direction", e[0], e[1])) + } + function yi(t) { + return "angle" === t ? { + between: Jt, + compare: Gt, + normalize: Zt + } : { + between: ee, + compare: (t,e)=>t - e, + normalize: t=>t + } + } + function vi({start: t, end: e, count: i, loop: s, style: n}) { + return { + start: t % i, + end: e % i, + loop: s && (e - t + 1) % i == 0, + style: n + } + } + function wi(t, e, i) { + if (!i) + return [t]; + const {property: s, start: n, end: o} = i + , a = e.length + , {compare: r, between: l, normalize: h} = yi(s) + , {start: c, end: d, loop: u, style: f} = function(t, e, i) { + const {property: s, start: n, end: o} = i + , {between: a, normalize: r} = yi(s) + , l = e.length; + let h, c, {start: d, end: u, loop: f} = t; + if (f) { + for (d += l, + u += l, + h = 0, + c = l; h < c && a(r(e[d % l][s]), n, o); ++h) + d--, + u--; + d %= l, + u %= l + } + return u < d && (u += l), + { + start: d, + end: u, + loop: f, + style: t.style + } + }(t, e, i) + , g = []; + let p, m, b, x = !1, _ = null; + const y = ()=>x || l(n, b, p) && 0 !== r(n, b) + , v = ()=>!x || 0 === r(o, p) || l(o, b, p); + for (let t = c, i = c; t <= d; ++t) + m = e[t % a], + m.skip || (p = h(m[s]), + p !== b && (x = l(p, n, o), + null === _ && y() && (_ = 0 === r(p, n) ? t : i), + null !== _ && v() && (g.push(vi({ + start: _, + end: t, + loop: u, + count: a, + style: f + })), + _ = null), + i = t, + b = p)); + return null !== _ && g.push(vi({ + start: _, + end: d, + loop: u, + count: a, + style: f + })), + g + } + function Mi(t, e) { + const i = [] + , s = t.segments; + for (let n = 0; n < s.length; n++) { + const o = wi(s[n], t.points, e); + o.length && i.push(...o) + } + return i + } + function ki(t, e) { + const i = t.points + , s = t.options.spanGaps + , n = i.length; + if (!n) + return []; + const o = !!t._loop + , {start: a, end: r} = function(t, e, i, s) { + let n = 0 + , o = e - 1; + if (i && !s) + for (; n < e && !t[n].skip; ) + n++; + for (; n < e && t[n].skip; ) + n++; + for (n %= e, + i && (o += n); o > n && t[o % e].skip; ) + o--; + return o %= e, + { + start: n, + end: o + } + }(i, n, o, s); + if (!0 === s) + return Si(t, [{ + start: a, + end: r, + loop: o + }], i, e); + return Si(t, function(t, e, i, s) { + const n = t.length + , o = []; + let a, r = e, l = t[e]; + for (a = e + 1; a <= i; ++a) { + const i = t[a % n]; + i.skip || i.stop ? l.skip || (s = !1, + o.push({ + start: e % n, + end: (a - 1) % n, + loop: s + }), + e = r = i.stop ? a : null) : (r = a, + l.skip && (e = a)), + l = i + } + return null !== r && o.push({ + start: e % n, + end: r % n, + loop: s + }), + o + }(i, a, r < a ? r + n : r, !!t._fullLoop && 0 === a && r === n - 1), i, e) + } + function Si(t, e, i, s) { + return s && s.setContext && i ? function(t, e, i, s) { + const n = t._chart.getContext() + , o = Pi(t.options) + , {_datasetIndex: a, options: {spanGaps: r}} = t + , l = i.length + , h = []; + let c = o + , d = e[0].start + , u = d; + function f(t, e, s, n) { + const o = r ? -1 : 1; + if (t !== e) { + for (t += l; i[t % l].skip; ) + t -= o; + for (; i[e % l].skip; ) + e += o; + t % l != e % l && (h.push({ + start: t % l, + end: e % l, + loop: s, + style: n + }), + c = n, + d = e % l) + } + } + for (const t of e) { + d = r ? d : t.start; + let e, o = i[d % l]; + for (u = d + 1; u <= t.end; u++) { + const r = i[u % l]; + e = Pi(s.setContext(mi(n, { + type: "segment", + p0: o, + p1: r, + p0DataIndex: (u - 1) % l, + p1DataIndex: u % l, + datasetIndex: a + }))), + Di(e, c) && f(d, u - 1, t.loop, c), + o = r, + c = e + } + d < u - 1 && f(d, u - 1, t.loop, c) + } + return h + }(t, e, i, s) : e + } + function Pi(t) { + return { + backgroundColor: t.backgroundColor, + borderCapStyle: t.borderCapStyle, + borderDash: t.borderDash, + borderDashOffset: t.borderDashOffset, + borderJoinStyle: t.borderJoinStyle, + borderWidth: t.borderWidth, + borderColor: t.borderColor + } + } + function Di(t, e) { + return e && JSON.stringify(t) !== JSON.stringify(e) + } + var Ci = Object.freeze({ + __proto__: null, + easingEffects: ti, + isPatternOrGradient: N, + color: j, + getHoverColor: H, + noop: $, + uid: Y, + isNullOrUndef: U, + isArray: X, + isObject: q, + isFinite: K, + finiteOrDefault: G, + valueOrDefault: Z, + toPercentage: J, + toDimension: Q, + callback: tt, + each: et, + _elementsEqual: it, + clone: st, + _merger: ot, + merge: at, + mergeIf: rt, + _mergerIf: lt, + _deprecated: function(t, e, i, s) { + void 0 !== e && console.warn(t + ': "' + i + '" is deprecated. Please use "' + s + '" instead') + }, + resolveObjectKey: ct, + _capitalize: dt, + defined: ut, + isFunction: ft, + setsEqual: gt, + _isClickEvent: pt, + toFontString: pe, + _measureText: me, + _longestText: be, + _alignPixel: xe, + clearCanvas: _e, + drawPoint: ye, + drawPointLegend: ve, + _isPointInArea: we, + clipArea: Me, + unclipArea: ke, + _steppedLineTo: Se, + _bezierCurveTo: Pe, + renderText: De, + addRoundedRectPath: Oe, + _lookup: vt, + _lookupByKey: wt, + _rlookupByKey: Mt, + _filterBetween: kt, + listenArrayEvents: Pt, + unlistenArrayEvents: Dt, + _arrayUnique: Ct, + _createResolver: Ae, + _attachContext: Te, + _descriptors: Le, + _parseObjectDataRadialScale: He, + splineCurve: Xe, + splineCurveMonotone: qe, + _updateBezierControlPoints: Ge, + _isDomSupported: ie, + _getParentNode: se, + getStyle: ae, + getRelativePosition: he, + getMaximumSize: de, + retinaScale: ue, + supportsEventListenerOptions: fe, + readUsedSize: ge, + fontString: function(t, e, i) { + return e + " " + t + "px " + i + }, + requestAnimFrame: t, + throttled: e, + debounce: i, + _toLeftRightCenter: s, + _alignStartEnd: n, + _textX: o, + _pointInLine: ei, + _steppedInterpolation: ii, + _bezierInterpolation: si, + formatNumber: oi, + toLineHeight: li, + _readValueToProps: hi, + toTRBL: ci, + toTRBLCorners: di, + toPadding: ui, + toFont: fi, + resolve: gi, + _addGrace: pi, + createContext: mi, + PI: Ot, + TAU: At, + PITAU: Tt, + INFINITY: Lt, + RAD_PER_DEG: Rt, + HALF_PI: Et, + QUARTER_PI: It, + TWO_THIRDS_PI: zt, + log10: Ft, + sign: Bt, + niceNum: Vt, + _factorize: Wt, + isNumber: Nt, + almostEquals: jt, + almostWhole: Ht, + _setMinAndMaxByKey: $t, + toRadians: Yt, + toDegrees: Ut, + _decimalPlaces: Xt, + getAngleFromPoint: qt, + distanceBetweenPoints: Kt, + _angleDiff: Gt, + _normalizeAngle: Zt, + _angleBetween: Jt, + _limitValue: Qt, + _int16Range: te, + _isBetween: ee, + getRtlAdapter: bi, + overrideTextDirection: xi, + restoreTextDirection: _i, + _boundSegment: wi, + _boundSegments: Mi, + _computeSegments: ki + }); + function Oi(t, e, i, s) { + const {controller: n, data: o, _sorted: a} = t + , r = n._cachedMeta.iScale; + if (r && e === r.axis && "r" !== e && a && o.length) { + const t = r._reversePixels ? Mt : wt; + if (!s) + return t(o, e, i); + if (n._sharedOptions) { + const s = o[0] + , n = "function" == typeof s.getRange && s.getRange(e); + if (n) { + const s = t(o, e, i - n) + , a = t(o, e, i + n); + return { + lo: s.lo, + hi: a.hi + } + } + } + } + return { + lo: 0, + hi: o.length - 1 + } + } + function Ai(t, e, i, s, n) { + const o = t.getSortedVisibleDatasetMetas() + , a = i[e]; + for (let t = 0, i = o.length; t < i; ++t) { + const {index: i, data: r} = o[t] + , {lo: l, hi: h} = Oi(o[t], e, a, n); + for (let t = l; t <= h; ++t) { + const e = r[t]; + e.skip || s(e, i, t) + } + } + } + function Ti(t, e, i, s, n) { + const o = []; + if (!n && !t.isPointInArea(e)) + return o; + return Ai(t, i, e, (function(i, a, r) { + (n || we(i, t.chartArea, 0)) && i.inRange(e.x, e.y, s) && o.push({ + element: i, + datasetIndex: a, + index: r + }) + } + ), !0), + o + } + function Li(t, e, i, s, n, o) { + let a = []; + const r = function(t) { + const e = -1 !== t.indexOf("x") + , i = -1 !== t.indexOf("y"); + return function(t, s) { + const n = e ? Math.abs(t.x - s.x) : 0 + , o = i ? Math.abs(t.y - s.y) : 0; + return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2)) + } + }(i); + let l = Number.POSITIVE_INFINITY; + return Ai(t, i, e, (function(i, h, c) { + const d = i.inRange(e.x, e.y, n); + if (s && !d) + return; + const u = i.getCenterPoint(n); + if (!(!!o || t.isPointInArea(u)) && !d) + return; + const f = r(e, u); + f < l ? (a = [{ + element: i, + datasetIndex: h, + index: c + }], + l = f) : f === l && a.push({ + element: i, + datasetIndex: h, + index: c + }) + } + )), + a + } + function Ri(t, e, i, s, n, o) { + return o || t.isPointInArea(e) ? "r" !== i || s ? Li(t, e, i, s, n, o) : function(t, e, i, s) { + let n = []; + return Ai(t, i, e, (function(t, i, o) { + const {startAngle: a, endAngle: r} = t.getProps(["startAngle", "endAngle"], s) + , {angle: l} = qt(t, { + x: e.x, + y: e.y + }); + Jt(l, a, r) && n.push({ + element: t, + datasetIndex: i, + index: o + }) + } + )), + n + }(t, e, i, n) : [] + } + function Ei(t, e, i, s, n) { + const o = [] + , a = "x" === i ? "inXRange" : "inYRange"; + let r = !1; + return Ai(t, i, e, ((t,s,l)=>{ + t[a](e[i], n) && (o.push({ + element: t, + datasetIndex: s, + index: l + }), + r = r || t.inRange(e.x, e.y, n)) + } + )), + s && !r ? [] : o + } + var Ii = { + evaluateInteractionItems: Ai, + modes: { + index(t, e, i, s) { + const n = he(e, t) + , o = i.axis || "x" + , a = i.includeInvisible || !1 + , r = i.intersect ? Ti(t, n, o, s, a) : Ri(t, n, o, !1, s, a) + , l = []; + return r.length ? (t.getSortedVisibleDatasetMetas().forEach((t=>{ + const e = r[0].index + , i = t.data[e]; + i && !i.skip && l.push({ + element: i, + datasetIndex: t.index, + index: e + }) + } + )), + l) : [] + }, + dataset(t, e, i, s) { + const n = he(e, t) + , o = i.axis || "xy" + , a = i.includeInvisible || !1; + let r = i.intersect ? Ti(t, n, o, s, a) : Ri(t, n, o, !1, s, a); + if (r.length > 0) { + const e = r[0].datasetIndex + , i = t.getDatasetMeta(e).data; + r = []; + for (let t = 0; t < i.length; ++t) + r.push({ + element: i[t], + datasetIndex: e, + index: t + }) + } + return r + }, + point: (t,e,i,s)=>Ti(t, he(e, t), i.axis || "xy", s, i.includeInvisible || !1), + nearest(t, e, i, s) { + const n = he(e, t) + , o = i.axis || "xy" + , a = i.includeInvisible || !1; + return Ri(t, n, o, i.intersect, s, a) + }, + x: (t,e,i,s)=>Ei(t, he(e, t), "x", i.intersect, s), + y: (t,e,i,s)=>Ei(t, he(e, t), "y", i.intersect, s) + } + }; + const zi = ["left", "top", "right", "bottom"]; + function Fi(t, e) { + return t.filter((t=>t.pos === e)) + } + function Bi(t, e) { + return t.filter((t=>-1 === zi.indexOf(t.pos) && t.box.axis === e)) + } + function Vi(t, e) { + return t.sort(((t,i)=>{ + const s = e ? i : t + , n = e ? t : i; + return s.weight === n.weight ? s.index - n.index : s.weight - n.weight + } + )) + } + function Wi(t, e) { + const i = function(t) { + const e = {}; + for (const i of t) { + const {stack: t, pos: s, stackWeight: n} = i; + if (!t || !zi.includes(s)) + continue; + const o = e[t] || (e[t] = { + count: 0, + placed: 0, + weight: 0, + size: 0 + }); + o.count++, + o.weight += n + } + return e + }(t) + , {vBoxMaxWidth: s, hBoxMaxHeight: n} = e; + let o, a, r; + for (o = 0, + a = t.length; o < a; ++o) { + r = t[o]; + const {fullSize: a} = r.box + , l = i[r.stack] + , h = l && r.stackWeight / l.weight; + r.horizontal ? (r.width = h ? h * s : a && e.availableWidth, + r.height = n) : (r.width = s, + r.height = h ? h * n : a && e.availableHeight) + } + return i + } + function Ni(t, e, i, s) { + return Math.max(t[i], e[i]) + Math.max(t[s], e[s]) + } + function ji(t, e) { + t.top = Math.max(t.top, e.top), + t.left = Math.max(t.left, e.left), + t.bottom = Math.max(t.bottom, e.bottom), + t.right = Math.max(t.right, e.right) + } + function Hi(t, e, i, s) { + const {pos: n, box: o} = i + , a = t.maxPadding; + if (!q(n)) { + i.size && (t[n] -= i.size); + const e = s[i.stack] || { + size: 0, + count: 1 + }; + e.size = Math.max(e.size, i.horizontal ? o.height : o.width), + i.size = e.size / e.count, + t[n] += i.size + } + o.getPadding && ji(a, o.getPadding()); + const r = Math.max(0, e.outerWidth - Ni(a, t, "left", "right")) + , l = Math.max(0, e.outerHeight - Ni(a, t, "top", "bottom")) + , h = r !== t.w + , c = l !== t.h; + return t.w = r, + t.h = l, + i.horizontal ? { + same: h, + other: c + } : { + same: c, + other: h + } + } + function $i(t, e) { + const i = e.maxPadding; + function s(t) { + const s = { + left: 0, + top: 0, + right: 0, + bottom: 0 + }; + return t.forEach((t=>{ + s[t] = Math.max(e[t], i[t]) + } + )), + s + } + return s(t ? ["left", "right"] : ["top", "bottom"]) + } + function Yi(t, e, i, s) { + const n = []; + let o, a, r, l, h, c; + for (o = 0, + a = t.length, + h = 0; o < a; ++o) { + r = t[o], + l = r.box, + l.update(r.width || e.w, r.height || e.h, $i(r.horizontal, e)); + const {same: a, other: d} = Hi(e, i, r, s); + h |= a && n.length, + c = c || d, + l.fullSize || n.push(r) + } + return h && Yi(n, e, i, s) || c + } + function Ui(t, e, i, s, n) { + t.top = i, + t.left = e, + t.right = e + s, + t.bottom = i + n, + t.width = s, + t.height = n + } + function Xi(t, e, i, s) { + const n = i.padding; + let {x: o, y: a} = e; + for (const r of t) { + const t = r.box + , l = s[r.stack] || { + count: 1, + placed: 0, + weight: 1 + } + , h = r.stackWeight / l.weight || 1; + if (r.horizontal) { + const s = e.w * h + , o = l.size || t.height; + ut(l.start) && (a = l.start), + t.fullSize ? Ui(t, n.left, a, i.outerWidth - n.right - n.left, o) : Ui(t, e.left + l.placed, a, s, o), + l.start = a, + l.placed += s, + a = t.bottom + } else { + const s = e.h * h + , a = l.size || t.width; + ut(l.start) && (o = l.start), + t.fullSize ? Ui(t, o, n.top, a, i.outerHeight - n.bottom - n.top) : Ui(t, o, e.top + l.placed, a, s), + l.start = o, + l.placed += s, + o = t.right + } + } + e.x = o, + e.y = a + } + yt.set("layout", { + autoPadding: !0, + padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + } + }); + var qi = { + addBox(t, e) { + t.boxes || (t.boxes = []), + e.fullSize = e.fullSize || !1, + e.position = e.position || "top", + e.weight = e.weight || 0, + e._layers = e._layers || function() { + return [{ + z: 0, + draw(t) { + e.draw(t) + } + }] + } + , + t.boxes.push(e) + }, + removeBox(t, e) { + const i = t.boxes ? t.boxes.indexOf(e) : -1; + -1 !== i && t.boxes.splice(i, 1) + }, + configure(t, e, i) { + e.fullSize = i.fullSize, + e.position = i.position, + e.weight = i.weight + }, + update(t, e, i, s) { + if (!t) + return; + const n = ui(t.options.layout.padding) + , o = Math.max(e - n.width, 0) + , a = Math.max(i - n.height, 0) + , r = function(t) { + const e = function(t) { + const e = []; + let i, s, n, o, a, r; + for (i = 0, + s = (t || []).length; i < s; ++i) + n = t[i], + ({position: o, options: {stack: a, stackWeight: r=1}} = n), + e.push({ + index: i, + box: n, + pos: o, + horizontal: n.isHorizontal(), + weight: n.weight, + stack: a && o + a, + stackWeight: r + }); + return e + }(t) + , i = Vi(e.filter((t=>t.box.fullSize)), !0) + , s = Vi(Fi(e, "left"), !0) + , n = Vi(Fi(e, "right")) + , o = Vi(Fi(e, "top"), !0) + , a = Vi(Fi(e, "bottom")) + , r = Bi(e, "x") + , l = Bi(e, "y"); + return { + fullSize: i, + leftAndTop: s.concat(o), + rightAndBottom: n.concat(l).concat(a).concat(r), + chartArea: Fi(e, "chartArea"), + vertical: s.concat(n).concat(l), + horizontal: o.concat(a).concat(r) + } + }(t.boxes) + , l = r.vertical + , h = r.horizontal; + et(t.boxes, (t=>{ + "function" == typeof t.beforeLayout && t.beforeLayout() + } + )); + const c = l.reduce(((t,e)=>e.box.options && !1 === e.box.options.display ? t : t + 1), 0) || 1 + , d = Object.freeze({ + outerWidth: e, + outerHeight: i, + padding: n, + availableWidth: o, + availableHeight: a, + vBoxMaxWidth: o / 2 / c, + hBoxMaxHeight: a / 2 + }) + , u = Object.assign({}, n); + ji(u, ui(s)); + const f = Object.assign({ + maxPadding: u, + w: o, + h: a, + x: n.left, + y: n.top + }, n) + , g = Wi(l.concat(h), d); + Yi(r.fullSize, f, d, g), + Yi(l, f, d, g), + Yi(h, f, d, g) && Yi(l, f, d, g), + function(t) { + const e = t.maxPadding; + function i(i) { + const s = Math.max(e[i] - t[i], 0); + return t[i] += s, + s + } + t.y += i("top"), + t.x += i("left"), + i("right"), + i("bottom") + }(f), + Xi(r.leftAndTop, f, d, g), + f.x += f.w, + f.y += f.h, + Xi(r.rightAndBottom, f, d, g), + t.chartArea = { + left: f.left, + top: f.top, + right: f.left + f.w, + bottom: f.top + f.h, + height: f.h, + width: f.w + }, + et(r.chartArea, (e=>{ + const i = e.box; + Object.assign(i, t.chartArea), + i.update(f.w, f.h, { + left: 0, + top: 0, + right: 0, + bottom: 0 + }) + } + )) + } + }; + class Ki { + acquireContext(t, e) {} + releaseContext(t) { + return !1 + } + addEventListener(t, e, i) {} + removeEventListener(t, e, i) {} + getDevicePixelRatio() { + return 1 + } + getMaximumSize(t, e, i, s) { + return e = Math.max(0, e || t.width), + i = i || t.height, + { + width: e, + height: Math.max(0, s ? Math.floor(e / s) : i) + } + } + isAttached(t) { + return !0 + } + updateConfig(t) {} + } + class Gi extends Ki { + acquireContext(t) { + return t && t.getContext && t.getContext("2d") || null + } + updateConfig(t) { + t.options.animation = !1 + } + } + const Zi = { + touchstart: "mousedown", + touchmove: "mousemove", + touchend: "mouseup", + pointerenter: "mouseenter", + pointerdown: "mousedown", + pointermove: "mousemove", + pointerup: "mouseup", + pointerleave: "mouseout", + pointerout: "mouseout" + } + , Ji = t=>null === t || "" === t; + const Qi = !!fe && { + passive: !0 + }; + function ts(t, e, i) { + t.canvas.removeEventListener(e, i, Qi) + } + function es(t, e) { + for (const i of t) + if (i === e || i.contains(e)) + return !0 + } + function is(t, e, i) { + const s = t.canvas + , n = new MutationObserver((t=>{ + let e = !1; + for (const i of t) + e = e || es(i.addedNodes, s), + e = e && !es(i.removedNodes, s); + e && i() + } + )); + return n.observe(document, { + childList: !0, + subtree: !0 + }), + n + } + function ss(t, e, i) { + const s = t.canvas + , n = new MutationObserver((t=>{ + let e = !1; + for (const i of t) + e = e || es(i.removedNodes, s), + e = e && !es(i.addedNodes, s); + e && i() + } + )); + return n.observe(document, { + childList: !0, + subtree: !0 + }), + n + } + const ns = new Map; + let os = 0; + function as() { + const t = window.devicePixelRatio; + t !== os && (os = t, + ns.forEach(((e,i)=>{ + i.currentDevicePixelRatio !== t && e() + } + ))) + } + function rs(t, i, s) { + const n = t.canvas + , o = n && se(n); + if (!o) + return; + const a = e(((t,e)=>{ + const i = o.clientWidth; + s(t, e), + i < o.clientWidth && s() + } + ), window) + , r = new ResizeObserver((t=>{ + const e = t[0] + , i = e.contentRect.width + , s = e.contentRect.height; + 0 === i && 0 === s || a(i, s) + } + )); + return r.observe(o), + function(t, e) { + ns.size || window.addEventListener("resize", as), + ns.set(t, e) + }(t, a), + r + } + function ls(t, e, i) { + i && i.disconnect(), + "resize" === e && function(t) { + ns.delete(t), + ns.size || window.removeEventListener("resize", as) + }(t) + } + function hs(t, i, s) { + const n = t.canvas + , o = e((e=>{ + null !== t.ctx && s(function(t, e) { + const i = Zi[t.type] || t.type + , {x: s, y: n} = he(t, e); + return { + type: i, + chart: e, + native: t, + x: void 0 !== s ? s : null, + y: void 0 !== n ? n : null + } + }(e, t)) + } + ), t, (t=>{ + const e = t[0]; + return [e, e.offsetX, e.offsetY] + } + )); + return function(t, e, i) { + t.addEventListener(e, i, Qi) + }(n, i, o), + o + } + class cs extends Ki { + acquireContext(t, e) { + const i = t && t.getContext && t.getContext("2d"); + return i && i.canvas === t ? (function(t, e) { + const i = t.style + , s = t.getAttribute("height") + , n = t.getAttribute("width"); + if (t.$chartjs = { + initial: { + height: s, + width: n, + style: { + display: i.display, + height: i.height, + width: i.width + } + } + }, + i.display = i.display || "block", + i.boxSizing = i.boxSizing || "border-box", + Ji(n)) { + const e = ge(t, "width"); + void 0 !== e && (t.width = e) + } + if (Ji(s)) + if ("" === t.style.height) + t.height = t.width / (e || 2); + else { + const e = ge(t, "height"); + void 0 !== e && (t.height = e) + } + }(t, e), + i) : null + } + releaseContext(t) { + const e = t.canvas; + if (!e.$chartjs) + return !1; + const i = e.$chartjs.initial; + ["height", "width"].forEach((t=>{ + const s = i[t]; + U(s) ? e.removeAttribute(t) : e.setAttribute(t, s) + } + )); + const s = i.style || {}; + return Object.keys(s).forEach((t=>{ + e.style[t] = s[t] + } + )), + e.width = e.width, + delete e.$chartjs, + !0 + } + addEventListener(t, e, i) { + this.removeEventListener(t, e); + const s = t.$proxies || (t.$proxies = {}) + , n = { + attach: is, + detach: ss, + resize: rs + }[e] || hs; + s[e] = n(t, e, i) + } + removeEventListener(t, e) { + const i = t.$proxies || (t.$proxies = {}) + , s = i[e]; + if (!s) + return; + ({ + attach: ls, + detach: ls, + resize: ls + }[e] || ts)(t, e, s), + i[e] = void 0 + } + getDevicePixelRatio() { + return window.devicePixelRatio + } + getMaximumSize(t, e, i, s) { + return de(t, e, i, s) + } + isAttached(t) { + const e = se(t); + return !(!e || !e.isConnected) + } + } + function ds(t) { + return !ie() || "undefined" != typeof OffscreenCanvas && t instanceof OffscreenCanvas ? Gi : cs + } + var us = Object.freeze({ + __proto__: null, + _detectPlatform: ds, + BasePlatform: Ki, + BasicPlatform: Gi, + DomPlatform: cs + }); + const fs = "transparent" + , gs = { + boolean: (t,e,i)=>i > .5 ? e : t, + color(t, e, i) { + const s = j(t || fs) + , n = s.valid && j(e || fs); + return n && n.valid ? n.mix(s, i).hexString() : e + }, + number: (t,e,i)=>t + (e - t) * i + }; + class ps { + constructor(t, e, i, s) { + const n = e[i]; + s = gi([t.to, s, n, t.from]); + const o = gi([t.from, n, s]); + this._active = !0, + this._fn = t.fn || gs[t.type || typeof o], + this._easing = ti[t.easing] || ti.linear, + this._start = Math.floor(Date.now() + (t.delay || 0)), + this._duration = this._total = Math.floor(t.duration), + this._loop = !!t.loop, + this._target = e, + this._prop = i, + this._from = o, + this._to = s, + this._promises = void 0 + } + active() { + return this._active + } + update(t, e, i) { + if (this._active) { + this._notify(!1); + const s = this._target[this._prop] + , n = i - this._start + , o = this._duration - n; + this._start = i, + this._duration = Math.floor(Math.max(o, t.duration)), + this._total += n, + this._loop = !!t.loop, + this._to = gi([t.to, e, s, t.from]), + this._from = gi([t.from, s, e]) + } + } + cancel() { + this._active && (this.tick(Date.now()), + this._active = !1, + this._notify(!1)) + } + tick(t) { + const e = t - this._start + , i = this._duration + , s = this._prop + , n = this._from + , o = this._loop + , a = this._to; + let r; + if (this._active = n !== a && (o || e < i), + !this._active) + return this._target[s] = a, + void this._notify(!0); + e < 0 ? this._target[s] = n : (r = e / i % 2, + r = o && r > 1 ? 2 - r : r, + r = this._easing(Math.min(1, Math.max(0, r))), + this._target[s] = this._fn(n, a, r)) + } + wait() { + const t = this._promises || (this._promises = []); + return new Promise(((e,i)=>{ + t.push({ + res: e, + rej: i + }) + } + )) + } + _notify(t) { + const e = t ? "res" : "rej" + , i = this._promises || []; + for (let t = 0; t < i.length; t++) + i[t][e]() + } + } + yt.set("animation", { + delay: void 0, + duration: 1e3, + easing: "easeOutQuart", + fn: void 0, + from: void 0, + loop: void 0, + to: void 0, + type: void 0 + }); + const ms = Object.keys(yt.animation); + yt.describe("animation", { + _fallback: !1, + _indexable: !1, + _scriptable: t=>"onProgress" !== t && "onComplete" !== t && "fn" !== t + }), + yt.set("animations", { + colors: { + type: "color", + properties: ["color", "borderColor", "backgroundColor"] + }, + numbers: { + type: "number", + properties: ["x", "y", "borderWidth", "radius", "tension"] + } + }), + yt.describe("animations", { + _fallback: "animation" + }), + yt.set("transitions", { + active: { + animation: { + duration: 400 + } + }, + resize: { + animation: { + duration: 0 + } + }, + show: { + animations: { + colors: { + from: "transparent" + }, + visible: { + type: "boolean", + duration: 0 + } + } + }, + hide: { + animations: { + colors: { + to: "transparent" + }, + visible: { + type: "boolean", + easing: "linear", + fn: t=>0 | t + } + } + } + }); + class bs { + constructor(t, e) { + this._chart = t, + this._properties = new Map, + this.configure(e) + } + configure(t) { + if (!q(t)) + return; + const e = this._properties; + Object.getOwnPropertyNames(t).forEach((i=>{ + const s = t[i]; + if (!q(s)) + return; + const n = {}; + for (const t of ms) + n[t] = s[t]; + (X(s.properties) && s.properties || [i]).forEach((t=>{ + t !== i && e.has(t) || e.set(t, n) + } + )) + } + )) + } + _animateOptions(t, e) { + const i = e.options + , s = function(t, e) { + if (!e) + return; + let i = t.options; + if (!i) + return void (t.options = e); + i.$shared && (t.options = i = Object.assign({}, i, { + $shared: !1, + $animations: {} + })); + return i + }(t, i); + if (!s) + return []; + const n = this._createAnimations(s, i); + return i.$shared && function(t, e) { + const i = [] + , s = Object.keys(e); + for (let e = 0; e < s.length; e++) { + const n = t[s[e]]; + n && n.active() && i.push(n.wait()) + } + return Promise.all(i) + }(t.options.$animations, i).then((()=>{ + t.options = i + } + ), (()=>{} + )), + n + } + _createAnimations(t, e) { + const i = this._properties + , s = [] + , n = t.$animations || (t.$animations = {}) + , o = Object.keys(e) + , a = Date.now(); + let r; + for (r = o.length - 1; r >= 0; --r) { + const l = o[r]; + if ("$" === l.charAt(0)) + continue; + if ("options" === l) { + s.push(...this._animateOptions(t, e)); + continue + } + const h = e[l]; + let c = n[l]; + const d = i.get(l); + if (c) { + if (d && c.active()) { + c.update(d, h, a); + continue + } + c.cancel() + } + d && d.duration ? (n[l] = c = new ps(d,t,l,h), + s.push(c)) : t[l] = h + } + return s + } + update(t, e) { + if (0 === this._properties.size) + return void Object.assign(t, e); + const i = this._createAnimations(t, e); + return i.length ? (a.add(this._chart, i), + !0) : void 0 + } + } + function xs(t, e) { + const i = t && t.options || {} + , s = i.reverse + , n = void 0 === i.min ? e : 0 + , o = void 0 === i.max ? e : 0; + return { + start: s ? o : n, + end: s ? n : o + } + } + function _s(t, e) { + const i = [] + , s = t._getSortedDatasetMetas(e); + let n, o; + for (n = 0, + o = s.length; n < o; ++n) + i.push(s[n].index); + return i + } + function ys(t, e, i, s={}) { + const n = t.keys + , o = "single" === s.mode; + let a, r, l, h; + if (null !== e) { + for (a = 0, + r = n.length; a < r; ++a) { + if (l = +n[a], + l === i) { + if (s.all) + continue; + break + } + h = t.values[l], + K(h) && (o || 0 === e || Bt(e) === Bt(h)) && (e += h) + } + return e + } + } + function vs(t, e) { + const i = t && t.options.stacked; + return i || void 0 === i && void 0 !== e.stack + } + function ws(t, e, i) { + const s = t[e] || (t[e] = {}); + return s[i] || (s[i] = {}) + } + function Ms(t, e, i, s) { + for (const n of e.getMatchingVisibleMetas(s).reverse()) { + const e = t[n.index]; + if (i && e > 0 || !i && e < 0) + return n.index + } + return null + } + function ks(t, e) { + const {chart: i, _cachedMeta: s} = t + , n = i._stacks || (i._stacks = {}) + , {iScale: o, vScale: a, index: r} = s + , l = o.axis + , h = a.axis + , c = function(t, e, i) { + return `${t.id}.${e.id}.${i.stack || i.type}` + }(o, a, s) + , d = e.length; + let u; + for (let t = 0; t < d; ++t) { + const i = e[t] + , {[l]: o, [h]: d} = i; + u = (i._stacks || (i._stacks = {}))[h] = ws(n, c, o), + u[r] = d, + u._top = Ms(u, a, !0, s.type), + u._bottom = Ms(u, a, !1, s.type) + } + } + function Ss(t, e) { + const i = t.scales; + return Object.keys(i).filter((t=>i[t].axis === e)).shift() + } + function Ps(t, e) { + const i = t.controller.index + , s = t.vScale && t.vScale.axis; + if (s) { + e = e || t._parsed; + for (const t of e) { + const e = t._stacks; + if (!e || void 0 === e[s] || void 0 === e[s][i]) + return; + delete e[s][i] + } + } + } + const Ds = t=>"reset" === t || "none" === t + , Cs = (t,e)=>e ? t : Object.assign({}, t); + class Os { + constructor(t, e) { + this.chart = t, + this._ctx = t.ctx, + this.index = e, + this._cachedDataOpts = {}, + this._cachedMeta = this.getMeta(), + this._type = this._cachedMeta.type, + this.options = void 0, + this._parsing = !1, + this._data = void 0, + this._objectData = void 0, + this._sharedOptions = void 0, + this._drawStart = void 0, + this._drawCount = void 0, + this.enableOptionSharing = !1, + this.supportsDecimation = !1, + this.$context = void 0, + this._syncList = [], + this.initialize() + } + initialize() { + const t = this._cachedMeta; + this.configure(), + this.linkScales(), + t._stacked = vs(t.vScale, t), + this.addElements() + } + updateIndex(t) { + this.index !== t && Ps(this._cachedMeta), + this.index = t + } + linkScales() { + const t = this.chart + , e = this._cachedMeta + , i = this.getDataset() + , s = (t,e,i,s)=>"x" === t ? e : "r" === t ? s : i + , n = e.xAxisID = Z(i.xAxisID, Ss(t, "x")) + , o = e.yAxisID = Z(i.yAxisID, Ss(t, "y")) + , a = e.rAxisID = Z(i.rAxisID, Ss(t, "r")) + , r = e.indexAxis + , l = e.iAxisID = s(r, n, o, a) + , h = e.vAxisID = s(r, o, n, a); + e.xScale = this.getScaleForId(n), + e.yScale = this.getScaleForId(o), + e.rScale = this.getScaleForId(a), + e.iScale = this.getScaleForId(l), + e.vScale = this.getScaleForId(h) + } + getDataset() { + return this.chart.data.datasets[this.index] + } + getMeta() { + return this.chart.getDatasetMeta(this.index) + } + getScaleForId(t) { + return this.chart.scales[t] + } + _getOtherScale(t) { + const e = this._cachedMeta; + return t === e.iScale ? e.vScale : e.iScale + } + reset() { + this._update("reset") + } + _destroy() { + const t = this._cachedMeta; + this._data && Dt(this._data, this), + t._stacked && Ps(t) + } + _dataCheck() { + const t = this.getDataset() + , e = t.data || (t.data = []) + , i = this._data; + if (q(e)) + this._data = function(t) { + const e = Object.keys(t) + , i = new Array(e.length); + let s, n, o; + for (s = 0, + n = e.length; s < n; ++s) + o = e[s], + i[s] = { + x: o, + y: t[o] + }; + return i + }(e); + else if (i !== e) { + if (i) { + Dt(i, this); + const t = this._cachedMeta; + Ps(t), + t._parsed = [] + } + e && Object.isExtensible(e) && Pt(e, this), + this._syncList = [], + this._data = e + } + } + addElements() { + const t = this._cachedMeta; + this._dataCheck(), + this.datasetElementType && (t.dataset = new this.datasetElementType) + } + buildOrUpdateElements(t) { + const e = this._cachedMeta + , i = this.getDataset(); + let s = !1; + this._dataCheck(); + const n = e._stacked; + e._stacked = vs(e.vScale, e), + e.stack !== i.stack && (s = !0, + Ps(e), + e.stack = i.stack), + this._resyncElements(t), + (s || n !== e._stacked) && ks(this, e._parsed) + } + configure() { + const t = this.chart.config + , e = t.datasetScopeKeys(this._type) + , i = t.getOptionScopes(this.getDataset(), e, !0); + this.options = t.createResolver(i, this.getContext()), + this._parsing = this.options.parsing, + this._cachedDataOpts = {} + } + parse(t, e) { + const {_cachedMeta: i, _data: s} = this + , {iScale: n, _stacked: o} = i + , a = n.axis; + let r, l, h, c = 0 === t && e === s.length || i._sorted, d = t > 0 && i._parsed[t - 1]; + if (!1 === this._parsing) + i._parsed = s, + i._sorted = !0, + h = s; + else { + h = X(s[t]) ? this.parseArrayData(i, s, t, e) : q(s[t]) ? this.parseObjectData(i, s, t, e) : this.parsePrimitiveData(i, s, t, e); + const n = ()=>null === l[a] || d && l[a] < d[a]; + for (r = 0; r < e; ++r) + i._parsed[r + t] = l = h[r], + c && (n() && (c = !1), + d = l); + i._sorted = c + } + o && ks(this, h) + } + parsePrimitiveData(t, e, i, s) { + const {iScale: n, vScale: o} = t + , a = n.axis + , r = o.axis + , l = n.getLabels() + , h = n === o + , c = new Array(s); + let d, u, f; + for (d = 0, + u = s; d < u; ++d) + f = d + i, + c[d] = { + [a]: h || n.parse(l[f], f), + [r]: o.parse(e[f], f) + }; + return c + } + parseArrayData(t, e, i, s) { + const {xScale: n, yScale: o} = t + , a = new Array(s); + let r, l, h, c; + for (r = 0, + l = s; r < l; ++r) + h = r + i, + c = e[h], + a[r] = { + x: n.parse(c[0], h), + y: o.parse(c[1], h) + }; + return a + } + parseObjectData(t, e, i, s) { + const {xScale: n, yScale: o} = t + , {xAxisKey: a="x", yAxisKey: r="y"} = this._parsing + , l = new Array(s); + let h, c, d, u; + for (h = 0, + c = s; h < c; ++h) + d = h + i, + u = e[d], + l[h] = { + x: n.parse(ct(u, a), d), + y: o.parse(ct(u, r), d) + }; + return l + } + getParsed(t) { + return this._cachedMeta._parsed[t] + } + getDataElement(t) { + return this._cachedMeta.data[t] + } + applyStack(t, e, i) { + const s = this.chart + , n = this._cachedMeta + , o = e[t.axis]; + return ys({ + keys: _s(s, !0), + values: e._stacks[t.axis] + }, o, n.index, { + mode: i + }) + } + updateRangeFromParsed(t, e, i, s) { + const n = i[e.axis]; + let o = null === n ? NaN : n; + const a = s && i._stacks[e.axis]; + s && a && (s.values = a, + o = ys(s, n, this._cachedMeta.index)), + t.min = Math.min(t.min, o), + t.max = Math.max(t.max, o) + } + getMinMax(t, e) { + const i = this._cachedMeta + , s = i._parsed + , n = i._sorted && t === i.iScale + , o = s.length + , a = this._getOtherScale(t) + , r = ((t,e,i)=>t && !e.hidden && e._stacked && { + keys: _s(i, !0), + values: null + })(e, i, this.chart) + , l = { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY + } + , {min: h, max: c} = function(t) { + const {min: e, max: i, minDefined: s, maxDefined: n} = t.getUserBounds(); + return { + min: s ? e : Number.NEGATIVE_INFINITY, + max: n ? i : Number.POSITIVE_INFINITY + } + }(a); + let d, u; + function f() { + u = s[d]; + const e = u[a.axis]; + return !K(u[t.axis]) || h > e || c < e + } + for (d = 0; d < o && (f() || (this.updateRangeFromParsed(l, t, u, r), + !n)); ++d) + ; + if (n) + for (d = o - 1; d >= 0; --d) + if (!f()) { + this.updateRangeFromParsed(l, t, u, r); + break + } + return l + } + getAllParsedValues(t) { + const e = this._cachedMeta._parsed + , i = []; + let s, n, o; + for (s = 0, + n = e.length; s < n; ++s) + o = e[s][t.axis], + K(o) && i.push(o); + return i + } + getMaxOverflow() { + return !1 + } + getLabelAndValue(t) { + const e = this._cachedMeta + , i = e.iScale + , s = e.vScale + , n = this.getParsed(t); + return { + label: i ? "" + i.getLabelForValue(n[i.axis]) : "", + value: s ? "" + s.getLabelForValue(n[s.axis]) : "" + } + } + _update(t) { + const e = this._cachedMeta; + this.update(t || "default"), + e._clip = function(t) { + let e, i, s, n; + return q(t) ? (e = t.top, + i = t.right, + s = t.bottom, + n = t.left) : e = i = s = n = t, + { + top: e, + right: i, + bottom: s, + left: n, + disabled: !1 === t + } + }(Z(this.options.clip, function(t, e, i) { + if (!1 === i) + return !1; + const s = xs(t, i) + , n = xs(e, i); + return { + top: n.end, + right: s.end, + bottom: n.start, + left: s.start + } + }(e.xScale, e.yScale, this.getMaxOverflow()))) + } + update(t) {} + draw() { + const t = this._ctx + , e = this.chart + , i = this._cachedMeta + , s = i.data || [] + , n = e.chartArea + , o = [] + , a = this._drawStart || 0 + , r = this._drawCount || s.length - a + , l = this.options.drawActiveElementsOnTop; + let h; + for (i.dataset && i.dataset.draw(t, n, a, r), + h = a; h < a + r; ++h) { + const e = s[h]; + e.hidden || (e.active && l ? o.push(e) : e.draw(t, n)) + } + for (h = 0; h < o.length; ++h) + o[h].draw(t, n) + } + getStyle(t, e) { + const i = e ? "active" : "default"; + return void 0 === t && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(i) : this.resolveDataElementOptions(t || 0, i) + } + getContext(t, e, i) { + const s = this.getDataset(); + let n; + if (t >= 0 && t < this._cachedMeta.data.length) { + const e = this._cachedMeta.data[t]; + n = e.$context || (e.$context = function(t, e, i) { + return mi(t, { + active: !1, + dataIndex: e, + parsed: void 0, + raw: void 0, + element: i, + index: e, + mode: "default", + type: "data" + }) + }(this.getContext(), t, e)), + n.parsed = this.getParsed(t), + n.raw = s.data[t], + n.index = n.dataIndex = t + } else + n = this.$context || (this.$context = function(t, e) { + return mi(t, { + active: !1, + dataset: void 0, + datasetIndex: e, + index: e, + mode: "default", + type: "dataset" + }) + }(this.chart.getContext(), this.index)), + n.dataset = s, + n.index = n.datasetIndex = this.index; + return n.active = !!e, + n.mode = i, + n + } + resolveDatasetElementOptions(t) { + return this._resolveElementOptions(this.datasetElementType.id, t) + } + resolveDataElementOptions(t, e) { + return this._resolveElementOptions(this.dataElementType.id, e, t) + } + _resolveElementOptions(t, e="default", i) { + const s = "active" === e + , n = this._cachedDataOpts + , o = t + "-" + e + , a = n[o] + , r = this.enableOptionSharing && ut(i); + if (a) + return Cs(a, r); + const l = this.chart.config + , h = l.datasetElementScopeKeys(this._type, t) + , c = s ? [`${t}Hover`, "hover", t, ""] : [t, ""] + , d = l.getOptionScopes(this.getDataset(), h) + , u = Object.keys(yt.elements[t]) + , f = l.resolveNamedOptions(d, u, (()=>this.getContext(i, s)), c); + return f.$shared && (f.$shared = r, + n[o] = Object.freeze(Cs(f, r))), + f + } + _resolveAnimations(t, e, i) { + const s = this.chart + , n = this._cachedDataOpts + , o = `animation-${e}` + , a = n[o]; + if (a) + return a; + let r; + if (!1 !== s.options.animation) { + const s = this.chart.config + , n = s.datasetAnimationScopeKeys(this._type, e) + , o = s.getOptionScopes(this.getDataset(), n); + r = s.createResolver(o, this.getContext(t, i, e)) + } + const l = new bs(s,r && r.animations); + return r && r._cacheable && (n[o] = Object.freeze(l)), + l + } + getSharedOptions(t) { + if (t.$shared) + return this._sharedOptions || (this._sharedOptions = Object.assign({}, t)) + } + includeOptions(t, e) { + return !e || Ds(t) || this.chart._animationsDisabled + } + _getSharedOptions(t, e) { + const i = this.resolveDataElementOptions(t, e) + , s = this._sharedOptions + , n = this.getSharedOptions(i) + , o = this.includeOptions(e, n) || n !== s; + return this.updateSharedOptions(n, e, i), + { + sharedOptions: n, + includeOptions: o + } + } + updateElement(t, e, i, s) { + Ds(s) ? Object.assign(t, i) : this._resolveAnimations(e, s).update(t, i) + } + updateSharedOptions(t, e, i) { + t && !Ds(e) && this._resolveAnimations(void 0, e).update(t, i) + } + _setStyle(t, e, i, s) { + t.active = s; + const n = this.getStyle(e, s); + this._resolveAnimations(e, i, s).update(t, { + options: !s && this.getSharedOptions(n) || n + }) + } + removeHoverStyle(t, e, i) { + this._setStyle(t, i, "active", !1) + } + setHoverStyle(t, e, i) { + this._setStyle(t, i, "active", !0) + } + _removeDatasetHoverStyle() { + const t = this._cachedMeta.dataset; + t && this._setStyle(t, void 0, "active", !1) + } + _setDatasetHoverStyle() { + const t = this._cachedMeta.dataset; + t && this._setStyle(t, void 0, "active", !0) + } + _resyncElements(t) { + const e = this._data + , i = this._cachedMeta.data; + for (const [t,e,i] of this._syncList) + this[t](e, i); + this._syncList = []; + const s = i.length + , n = e.length + , o = Math.min(n, s); + o && this.parse(0, o), + n > s ? this._insertElements(s, n - s, t) : n < s && this._removeElements(n, s - n) + } + _insertElements(t, e, i=!0) { + const s = this._cachedMeta + , n = s.data + , o = t + e; + let a; + const r = t=>{ + for (t.length += e, + a = t.length - 1; a >= o; a--) + t[a] = t[a - e] + } + ; + for (r(n), + a = t; a < o; ++a) + n[a] = new this.dataElementType; + this._parsing && r(s._parsed), + this.parse(t, e), + i && this.updateElements(n, t, e, "reset") + } + updateElements(t, e, i, s) {} + _removeElements(t, e) { + const i = this._cachedMeta; + if (this._parsing) { + const s = i._parsed.splice(t, e); + i._stacked && Ps(i, s) + } + i.data.splice(t, e) + } + _sync(t) { + if (this._parsing) + this._syncList.push(t); + else { + const [e,i,s] = t; + this[e](i, s) + } + this.chart._dataChanges.push([this.index, ...t]) + } + _onDataPush() { + const t = arguments.length; + this._sync(["_insertElements", this.getDataset().data.length - t, t]) + } + _onDataPop() { + this._sync(["_removeElements", this._cachedMeta.data.length - 1, 1]) + } + _onDataShift() { + this._sync(["_removeElements", 0, 1]) + } + _onDataSplice(t, e) { + e && this._sync(["_removeElements", t, e]); + const i = arguments.length - 2; + i && this._sync(["_insertElements", t, i]) + } + _onDataUnshift() { + this._sync(["_insertElements", 0, arguments.length]) + } + } + Os.defaults = {}, + Os.prototype.datasetElementType = null, + Os.prototype.dataElementType = null; + class As { + constructor() { + this.x = void 0, + this.y = void 0, + this.active = !1, + this.options = void 0, + this.$animations = void 0 + } + tooltipPosition(t) { + const {x: e, y: i} = this.getProps(["x", "y"], t); + return { + x: e, + y: i + } + } + hasValue() { + return Nt(this.x) && Nt(this.y) + } + getProps(t, e) { + const i = this.$animations; + if (!e || !i) + return this; + const s = {}; + return t.forEach((t=>{ + s[t] = i[t] && i[t].active() ? i[t]._to : this[t] + } + )), + s + } + } + As.defaults = {}, + As.defaultRoutes = void 0; + const Ts = { + values: t=>X(t) ? t : "" + t, + numeric(t, e, i) { + if (0 === t) + return "0"; + const s = this.chart.options.locale; + let n, o = t; + if (i.length > 1) { + const e = Math.max(Math.abs(i[0].value), Math.abs(i[i.length - 1].value)); + (e < 1e-4 || e > 1e15) && (n = "scientific"), + o = function(t, e) { + let i = e.length > 3 ? e[2].value - e[1].value : e[1].value - e[0].value; + Math.abs(i) >= 1 && t !== Math.floor(t) && (i = t - Math.floor(t)); + return i + }(t, i) + } + const a = Ft(Math.abs(o)) + , r = Math.max(Math.min(-1 * Math.floor(a), 20), 0) + , l = { + notation: n, + minimumFractionDigits: r, + maximumFractionDigits: r + }; + return Object.assign(l, this.options.ticks.format), + oi(t, s, l) + }, + logarithmic(t, e, i) { + if (0 === t) + return "0"; + const s = t / Math.pow(10, Math.floor(Ft(t))); + return 1 === s || 2 === s || 5 === s ? Ts.numeric.call(this, t, e, i) : "" + } + }; + var Ls = { + formatters: Ts + }; + function Rs(t, e) { + const i = t.options.ticks + , s = i.maxTicksLimit || function(t) { + const e = t.options.offset + , i = t._tickSize() + , s = t._length / i + (e ? 0 : 1) + , n = t._maxLength / i; + return Math.floor(Math.min(s, n)) + }(t) + , n = i.major.enabled ? function(t) { + const e = []; + let i, s; + for (i = 0, + s = t.length; i < s; i++) + t[i].major && e.push(i); + return e + }(e) : [] + , o = n.length + , a = n[0] + , r = n[o - 1] + , l = []; + if (o > s) + return function(t, e, i, s) { + let n, o = 0, a = i[0]; + for (s = Math.ceil(s), + n = 0; n < t.length; n++) + n === a && (e.push(t[n]), + o++, + a = i[o * s]) + }(e, l, n, o / s), + l; + const h = function(t, e, i) { + const s = function(t) { + const e = t.length; + let i, s; + if (e < 2) + return !1; + for (s = t[0], + i = 1; i < e; ++i) + if (t[i] - t[i - 1] !== s) + return !1; + return s + }(t) + , n = e.length / i; + if (!s) + return Math.max(n, 1); + const o = Wt(s); + for (let t = 0, e = o.length - 1; t < e; t++) { + const e = o[t]; + if (e > n) + return e + } + return Math.max(n, 1) + }(n, e, s); + if (o > 0) { + let t, i; + const s = o > 1 ? Math.round((r - a) / (o - 1)) : null; + for (Es(e, l, h, U(s) ? 0 : a - s, a), + t = 0, + i = o - 1; t < i; t++) + Es(e, l, h, n[t], n[t + 1]); + return Es(e, l, h, r, U(s) ? e.length : r + s), + l + } + return Es(e, l, h), + l + } + function Es(t, e, i, s, n) { + const o = Z(s, 0) + , a = Math.min(Z(n, t.length), t.length); + let r, l, h, c = 0; + for (i = Math.ceil(i), + n && (r = n - s, + i = r / Math.floor(r / i)), + h = o; h < 0; ) + c++, + h = Math.round(o + c * i); + for (l = Math.max(o, 0); l < a; l++) + l === h && (e.push(t[l]), + c++, + h = Math.round(o + c * i)) + } + yt.set("scale", { + display: !0, + offset: !1, + reverse: !1, + beginAtZero: !1, + bounds: "ticks", + grace: 0, + grid: { + display: !0, + lineWidth: 1, + drawBorder: !0, + drawOnChartArea: !0, + drawTicks: !0, + tickLength: 8, + tickWidth: (t,e)=>e.lineWidth, + tickColor: (t,e)=>e.color, + offset: !1, + borderDash: [], + borderDashOffset: 0, + borderWidth: 1 + }, + title: { + display: !1, + text: "", + padding: { + top: 4, + bottom: 4 + } + }, + ticks: { + minRotation: 0, + maxRotation: 50, + mirror: !1, + textStrokeWidth: 0, + textStrokeColor: "", + padding: 3, + display: !0, + autoSkip: !0, + autoSkipPadding: 3, + labelOffset: 0, + callback: Ls.formatters.values, + minor: {}, + major: {}, + align: "center", + crossAlign: "near", + showLabelBackdrop: !1, + backdropColor: "rgba(255, 255, 255, 0.75)", + backdropPadding: 2 + } + }), + yt.route("scale.ticks", "color", "", "color"), + yt.route("scale.grid", "color", "", "borderColor"), + yt.route("scale.grid", "borderColor", "", "borderColor"), + yt.route("scale.title", "color", "", "color"), + yt.describe("scale", { + _fallback: !1, + _scriptable: t=>!t.startsWith("before") && !t.startsWith("after") && "callback" !== t && "parser" !== t, + _indexable: t=>"borderDash" !== t && "tickBorderDash" !== t + }), + yt.describe("scales", { + _fallback: "scale" + }), + yt.describe("scale.ticks", { + _scriptable: t=>"backdropPadding" !== t && "callback" !== t, + _indexable: t=>"backdropPadding" !== t + }); + const Is = (t,e,i)=>"top" === e || "left" === e ? t[e] + i : t[e] - i; + function zs(t, e) { + const i = [] + , s = t.length / e + , n = t.length; + let o = 0; + for (; o < n; o += s) + i.push(t[Math.floor(o)]); + return i + } + function Fs(t, e, i) { + const s = t.ticks.length + , n = Math.min(e, s - 1) + , o = t._startPixel + , a = t._endPixel + , r = 1e-6; + let l, h = t.getPixelForTick(n); + if (!(i && (l = 1 === s ? Math.max(h - o, a - h) : 0 === e ? (t.getPixelForTick(1) - h) / 2 : (h - t.getPixelForTick(n - 1)) / 2, + h += n < e ? l : -l, + h < o - r || h > a + r))) + return h + } + function Bs(t) { + return t.drawTicks ? t.tickLength : 0 + } + function Vs(t, e) { + if (!t.display) + return 0; + const i = fi(t.font, e) + , s = ui(t.padding); + return (X(t.text) ? t.text.length : 1) * i.lineHeight + s.height + } + function Ws(t, e, i) { + let n = s(t); + return (i && "right" !== e || !i && "right" === e) && (n = (t=>"left" === t ? "right" : "right" === t ? "left" : t)(n)), + n + } + class Ns extends As { + constructor(t) { + super(), + this.id = t.id, + this.type = t.type, + this.options = void 0, + this.ctx = t.ctx, + this.chart = t.chart, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.width = void 0, + this.height = void 0, + this._margins = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }, + this.maxWidth = void 0, + this.maxHeight = void 0, + this.paddingTop = void 0, + this.paddingBottom = void 0, + this.paddingLeft = void 0, + this.paddingRight = void 0, + this.axis = void 0, + this.labelRotation = void 0, + this.min = void 0, + this.max = void 0, + this._range = void 0, + this.ticks = [], + this._gridLineItems = null, + this._labelItems = null, + this._labelSizes = null, + this._length = 0, + this._maxLength = 0, + this._longestTextCache = {}, + this._startPixel = void 0, + this._endPixel = void 0, + this._reversePixels = !1, + this._userMax = void 0, + this._userMin = void 0, + this._suggestedMax = void 0, + this._suggestedMin = void 0, + this._ticksLength = 0, + this._borderValue = 0, + this._cache = {}, + this._dataLimitsCached = !1, + this.$context = void 0 + } + init(t) { + this.options = t.setContext(this.getContext()), + this.axis = t.axis, + this._userMin = this.parse(t.min), + this._userMax = this.parse(t.max), + this._suggestedMin = this.parse(t.suggestedMin), + this._suggestedMax = this.parse(t.suggestedMax) + } + parse(t, e) { + return t + } + getUserBounds() { + let {_userMin: t, _userMax: e, _suggestedMin: i, _suggestedMax: s} = this; + return t = G(t, Number.POSITIVE_INFINITY), + e = G(e, Number.NEGATIVE_INFINITY), + i = G(i, Number.POSITIVE_INFINITY), + s = G(s, Number.NEGATIVE_INFINITY), + { + min: G(t, i), + max: G(e, s), + minDefined: K(t), + maxDefined: K(e) + } + } + getMinMax(t) { + let e, {min: i, max: s, minDefined: n, maxDefined: o} = this.getUserBounds(); + if (n && o) + return { + min: i, + max: s + }; + const a = this.getMatchingVisibleMetas(); + for (let r = 0, l = a.length; r < l; ++r) + e = a[r].controller.getMinMax(this, t), + n || (i = Math.min(i, e.min)), + o || (s = Math.max(s, e.max)); + return i = o && i > s ? s : i, + s = n && i > s ? i : s, + { + min: G(i, G(s, i)), + max: G(s, G(i, s)) + } + } + getPadding() { + return { + left: this.paddingLeft || 0, + top: this.paddingTop || 0, + right: this.paddingRight || 0, + bottom: this.paddingBottom || 0 + } + } + getTicks() { + return this.ticks + } + getLabels() { + const t = this.chart.data; + return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels || [] + } + beforeLayout() { + this._cache = {}, + this._dataLimitsCached = !1 + } + beforeUpdate() { + tt(this.options.beforeUpdate, [this]) + } + update(t, e, i) { + const {beginAtZero: s, grace: n, ticks: o} = this.options + , a = o.sampleSize; + this.beforeUpdate(), + this.maxWidth = t, + this.maxHeight = e, + this._margins = i = Object.assign({ + left: 0, + right: 0, + top: 0, + bottom: 0 + }, i), + this.ticks = null, + this._labelSizes = null, + this._gridLineItems = null, + this._labelItems = null, + this.beforeSetDimensions(), + this.setDimensions(), + this.afterSetDimensions(), + this._maxLength = this.isHorizontal() ? this.width + i.left + i.right : this.height + i.top + i.bottom, + this._dataLimitsCached || (this.beforeDataLimits(), + this.determineDataLimits(), + this.afterDataLimits(), + this._range = pi(this, n, s), + this._dataLimitsCached = !0), + this.beforeBuildTicks(), + this.ticks = this.buildTicks() || [], + this.afterBuildTicks(); + const r = a < this.ticks.length; + this._convertTicksToLabels(r ? zs(this.ticks, a) : this.ticks), + this.configure(), + this.beforeCalculateLabelRotation(), + this.calculateLabelRotation(), + this.afterCalculateLabelRotation(), + o.display && (o.autoSkip || "auto" === o.source) && (this.ticks = Rs(this, this.ticks), + this._labelSizes = null, + this.afterAutoSkip()), + r && this._convertTicksToLabels(this.ticks), + this.beforeFit(), + this.fit(), + this.afterFit(), + this.afterUpdate() + } + configure() { + let t, e, i = this.options.reverse; + this.isHorizontal() ? (t = this.left, + e = this.right) : (t = this.top, + e = this.bottom, + i = !i), + this._startPixel = t, + this._endPixel = e, + this._reversePixels = i, + this._length = e - t, + this._alignToPixels = this.options.alignToPixels + } + afterUpdate() { + tt(this.options.afterUpdate, [this]) + } + beforeSetDimensions() { + tt(this.options.beforeSetDimensions, [this]) + } + setDimensions() { + this.isHorizontal() ? (this.width = this.maxWidth, + this.left = 0, + this.right = this.width) : (this.height = this.maxHeight, + this.top = 0, + this.bottom = this.height), + this.paddingLeft = 0, + this.paddingTop = 0, + this.paddingRight = 0, + this.paddingBottom = 0 + } + afterSetDimensions() { + tt(this.options.afterSetDimensions, [this]) + } + _callHooks(t) { + this.chart.notifyPlugins(t, this.getContext()), + tt(this.options[t], [this]) + } + beforeDataLimits() { + this._callHooks("beforeDataLimits") + } + determineDataLimits() {} + afterDataLimits() { + this._callHooks("afterDataLimits") + } + beforeBuildTicks() { + this._callHooks("beforeBuildTicks") + } + buildTicks() { + return [] + } + afterBuildTicks() { + this._callHooks("afterBuildTicks") + } + beforeTickToLabelConversion() { + tt(this.options.beforeTickToLabelConversion, [this]) + } + generateTickLabels(t) { + const e = this.options.ticks; + let i, s, n; + for (i = 0, + s = t.length; i < s; i++) + n = t[i], + n.label = tt(e.callback, [n.value, i, t], this) + } + afterTickToLabelConversion() { + tt(this.options.afterTickToLabelConversion, [this]) + } + beforeCalculateLabelRotation() { + tt(this.options.beforeCalculateLabelRotation, [this]) + } + calculateLabelRotation() { + const t = this.options + , e = t.ticks + , i = this.ticks.length + , s = e.minRotation || 0 + , n = e.maxRotation; + let o, a, r, l = s; + if (!this._isVisible() || !e.display || s >= n || i <= 1 || !this.isHorizontal()) + return void (this.labelRotation = s); + const h = this._getLabelSizes() + , c = h.widest.width + , d = h.highest.height + , u = Qt(this.chart.width - c, 0, this.maxWidth); + o = t.offset ? this.maxWidth / i : u / (i - 1), + c + 6 > o && (o = u / (i - (t.offset ? .5 : 1)), + a = this.maxHeight - Bs(t.grid) - e.padding - Vs(t.title, this.chart.options.font), + r = Math.sqrt(c * c + d * d), + l = Ut(Math.min(Math.asin(Qt((h.highest.height + 6) / o, -1, 1)), Math.asin(Qt(a / r, -1, 1)) - Math.asin(Qt(d / r, -1, 1)))), + l = Math.max(s, Math.min(n, l))), + this.labelRotation = l + } + afterCalculateLabelRotation() { + tt(this.options.afterCalculateLabelRotation, [this]) + } + afterAutoSkip() {} + beforeFit() { + tt(this.options.beforeFit, [this]) + } + fit() { + const t = { + width: 0, + height: 0 + } + , {chart: e, options: {ticks: i, title: s, grid: n}} = this + , o = this._isVisible() + , a = this.isHorizontal(); + if (o) { + const o = Vs(s, e.options.font); + if (a ? (t.width = this.maxWidth, + t.height = Bs(n) + o) : (t.height = this.maxHeight, + t.width = Bs(n) + o), + i.display && this.ticks.length) { + const {first: e, last: s, widest: n, highest: o} = this._getLabelSizes() + , r = 2 * i.padding + , l = Yt(this.labelRotation) + , h = Math.cos(l) + , c = Math.sin(l); + if (a) { + const e = i.mirror ? 0 : c * n.width + h * o.height; + t.height = Math.min(this.maxHeight, t.height + e + r) + } else { + const e = i.mirror ? 0 : h * n.width + c * o.height; + t.width = Math.min(this.maxWidth, t.width + e + r) + } + this._calculatePadding(e, s, c, h) + } + } + this._handleMargins(), + a ? (this.width = this._length = e.width - this._margins.left - this._margins.right, + this.height = t.height) : (this.width = t.width, + this.height = this._length = e.height - this._margins.top - this._margins.bottom) + } + _calculatePadding(t, e, i, s) { + const {ticks: {align: n, padding: o}, position: a} = this.options + , r = 0 !== this.labelRotation + , l = "top" !== a && "x" === this.axis; + if (this.isHorizontal()) { + const a = this.getPixelForTick(0) - this.left + , h = this.right - this.getPixelForTick(this.ticks.length - 1); + let c = 0 + , d = 0; + r ? l ? (c = s * t.width, + d = i * e.height) : (c = i * t.height, + d = s * e.width) : "start" === n ? d = e.width : "end" === n ? c = t.width : "inner" !== n && (c = t.width / 2, + d = e.width / 2), + this.paddingLeft = Math.max((c - a + o) * this.width / (this.width - a), 0), + this.paddingRight = Math.max((d - h + o) * this.width / (this.width - h), 0) + } else { + let i = e.height / 2 + , s = t.height / 2; + "start" === n ? (i = 0, + s = t.height) : "end" === n && (i = e.height, + s = 0), + this.paddingTop = i + o, + this.paddingBottom = s + o + } + } + _handleMargins() { + this._margins && (this._margins.left = Math.max(this.paddingLeft, this._margins.left), + this._margins.top = Math.max(this.paddingTop, this._margins.top), + this._margins.right = Math.max(this.paddingRight, this._margins.right), + this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom)) + } + afterFit() { + tt(this.options.afterFit, [this]) + } + isHorizontal() { + const {axis: t, position: e} = this.options; + return "top" === e || "bottom" === e || "x" === t + } + isFullSize() { + return this.options.fullSize + } + _convertTicksToLabels(t) { + let e, i; + for (this.beforeTickToLabelConversion(), + this.generateTickLabels(t), + e = 0, + i = t.length; e < i; e++) + U(t[e].label) && (t.splice(e, 1), + i--, + e--); + this.afterTickToLabelConversion() + } + _getLabelSizes() { + let t = this._labelSizes; + if (!t) { + const e = this.options.ticks.sampleSize; + let i = this.ticks; + e < i.length && (i = zs(i, e)), + this._labelSizes = t = this._computeLabelSizes(i, i.length) + } + return t + } + _computeLabelSizes(t, e) { + const {ctx: i, _longestTextCache: s} = this + , n = [] + , o = []; + let a, r, l, h, c, d, u, f, g, p, m, b = 0, x = 0; + for (a = 0; a < e; ++a) { + if (h = t[a].label, + c = this._resolveTickFontOptions(a), + i.font = d = c.string, + u = s[d] = s[d] || { + data: {}, + gc: [] + }, + f = c.lineHeight, + g = p = 0, + U(h) || X(h)) { + if (X(h)) + for (r = 0, + l = h.length; r < l; ++r) + m = h[r], + U(m) || X(m) || (g = me(i, u.data, u.gc, g, m), + p += f) + } else + g = me(i, u.data, u.gc, g, h), + p = f; + n.push(g), + o.push(p), + b = Math.max(g, b), + x = Math.max(p, x) + } + !function(t, e) { + et(t, (t=>{ + const i = t.gc + , s = i.length / 2; + let n; + if (s > e) { + for (n = 0; n < s; ++n) + delete t.data[i[n]]; + i.splice(0, s) + } + } + )) + }(s, e); + const _ = n.indexOf(b) + , y = o.indexOf(x) + , v = t=>({ + width: n[t] || 0, + height: o[t] || 0 + }); + return { + first: v(0), + last: v(e - 1), + widest: v(_), + highest: v(y), + widths: n, + heights: o + } + } + getLabelForValue(t) { + return t + } + getPixelForValue(t, e) { + return NaN + } + getValueForPixel(t) {} + getPixelForTick(t) { + const e = this.ticks; + return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value) + } + getPixelForDecimal(t) { + this._reversePixels && (t = 1 - t); + const e = this._startPixel + t * this._length; + return te(this._alignToPixels ? xe(this.chart, e, 0) : e) + } + getDecimalForPixel(t) { + const e = (t - this._startPixel) / this._length; + return this._reversePixels ? 1 - e : e + } + getBasePixel() { + return this.getPixelForValue(this.getBaseValue()) + } + getBaseValue() { + const {min: t, max: e} = this; + return t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0 + } + getContext(t) { + const e = this.ticks || []; + if (t >= 0 && t < e.length) { + const i = e[t]; + return i.$context || (i.$context = function(t, e, i) { + return mi(t, { + tick: i, + index: e, + type: "tick" + }) + }(this.getContext(), t, i)) + } + return this.$context || (this.$context = mi(this.chart.getContext(), { + scale: this, + type: "scale" + })) + } + _tickSize() { + const t = this.options.ticks + , e = Yt(this.labelRotation) + , i = Math.abs(Math.cos(e)) + , s = Math.abs(Math.sin(e)) + , n = this._getLabelSizes() + , o = t.autoSkipPadding || 0 + , a = n ? n.widest.width + o : 0 + , r = n ? n.highest.height + o : 0; + return this.isHorizontal() ? r * i > a * s ? a / i : r / s : r * s < a * i ? r / i : a / s + } + _isVisible() { + const t = this.options.display; + return "auto" !== t ? !!t : this.getMatchingVisibleMetas().length > 0 + } + _computeGridLineItems(t) { + const e = this.axis + , i = this.chart + , s = this.options + , {grid: n, position: o} = s + , a = n.offset + , r = this.isHorizontal() + , l = this.ticks.length + (a ? 1 : 0) + , h = Bs(n) + , c = [] + , d = n.setContext(this.getContext()) + , u = d.drawBorder ? d.borderWidth : 0 + , f = u / 2 + , g = function(t) { + return xe(i, t, u) + }; + let p, m, b, x, _, y, v, w, M, k, S, P; + if ("top" === o) + p = g(this.bottom), + y = this.bottom - h, + w = p - f, + k = g(t.top) + f, + P = t.bottom; + else if ("bottom" === o) + p = g(this.top), + k = t.top, + P = g(t.bottom) - f, + y = p + f, + w = this.top + h; + else if ("left" === o) + p = g(this.right), + _ = this.right - h, + v = p - f, + M = g(t.left) + f, + S = t.right; + else if ("right" === o) + p = g(this.left), + M = t.left, + S = g(t.right) - f, + _ = p + f, + v = this.left + h; + else if ("x" === e) { + if ("center" === o) + p = g((t.top + t.bottom) / 2 + .5); + else if (q(o)) { + const t = Object.keys(o)[0] + , e = o[t]; + p = g(this.chart.scales[t].getPixelForValue(e)) + } + k = t.top, + P = t.bottom, + y = p + f, + w = y + h + } else if ("y" === e) { + if ("center" === o) + p = g((t.left + t.right) / 2); + else if (q(o)) { + const t = Object.keys(o)[0] + , e = o[t]; + p = g(this.chart.scales[t].getPixelForValue(e)) + } + _ = p - f, + v = _ - h, + M = t.left, + S = t.right + } + const D = Z(s.ticks.maxTicksLimit, l) + , C = Math.max(1, Math.ceil(l / D)); + for (m = 0; m < l; m += C) { + const t = n.setContext(this.getContext(m)) + , e = t.lineWidth + , s = t.color + , o = n.borderDash || [] + , l = t.borderDashOffset + , h = t.tickWidth + , d = t.tickColor + , u = t.tickBorderDash || [] + , f = t.tickBorderDashOffset; + b = Fs(this, m, a), + void 0 !== b && (x = xe(i, b, e), + r ? _ = v = M = S = x : y = w = k = P = x, + c.push({ + tx1: _, + ty1: y, + tx2: v, + ty2: w, + x1: M, + y1: k, + x2: S, + y2: P, + width: e, + color: s, + borderDash: o, + borderDashOffset: l, + tickWidth: h, + tickColor: d, + tickBorderDash: u, + tickBorderDashOffset: f + })) + } + return this._ticksLength = l, + this._borderValue = p, + c + } + _computeLabelItems(t) { + const e = this.axis + , i = this.options + , {position: s, ticks: n} = i + , o = this.isHorizontal() + , a = this.ticks + , {align: r, crossAlign: l, padding: h, mirror: c} = n + , d = Bs(i.grid) + , u = d + h + , f = c ? -h : u + , g = -Yt(this.labelRotation) + , p = []; + let m, b, x, _, y, v, w, M, k, S, P, D, C = "middle"; + if ("top" === s) + v = this.bottom - f, + w = this._getXAxisLabelAlignment(); + else if ("bottom" === s) + v = this.top + f, + w = this._getXAxisLabelAlignment(); + else if ("left" === s) { + const t = this._getYAxisLabelAlignment(d); + w = t.textAlign, + y = t.x + } else if ("right" === s) { + const t = this._getYAxisLabelAlignment(d); + w = t.textAlign, + y = t.x + } else if ("x" === e) { + if ("center" === s) + v = (t.top + t.bottom) / 2 + u; + else if (q(s)) { + const t = Object.keys(s)[0] + , e = s[t]; + v = this.chart.scales[t].getPixelForValue(e) + u + } + w = this._getXAxisLabelAlignment() + } else if ("y" === e) { + if ("center" === s) + y = (t.left + t.right) / 2 - u; + else if (q(s)) { + const t = Object.keys(s)[0] + , e = s[t]; + y = this.chart.scales[t].getPixelForValue(e) + } + w = this._getYAxisLabelAlignment(d).textAlign + } + "y" === e && ("start" === r ? C = "top" : "end" === r && (C = "bottom")); + const O = this._getLabelSizes(); + for (m = 0, + b = a.length; m < b; ++m) { + x = a[m], + _ = x.label; + const t = n.setContext(this.getContext(m)); + M = this.getPixelForTick(m) + n.labelOffset, + k = this._resolveTickFontOptions(m), + S = k.lineHeight, + P = X(_) ? _.length : 1; + const e = P / 2 + , i = t.color + , r = t.textStrokeColor + , h = t.textStrokeWidth; + let d, u = w; + if (o ? (y = M, + "inner" === w && (u = m === b - 1 ? this.options.reverse ? "left" : "right" : 0 === m ? this.options.reverse ? "right" : "left" : "center"), + D = "top" === s ? "near" === l || 0 !== g ? -P * S + S / 2 : "center" === l ? -O.highest.height / 2 - e * S + S : -O.highest.height + S / 2 : "near" === l || 0 !== g ? S / 2 : "center" === l ? O.highest.height / 2 - e * S : O.highest.height - P * S, + c && (D *= -1)) : (v = M, + D = (1 - P) * S / 2), + t.showLabelBackdrop) { + const e = ui(t.backdropPadding) + , i = O.heights[m] + , s = O.widths[m]; + let n = v + D - e.top + , o = y - e.left; + switch (C) { + case "middle": + n -= i / 2; + break; + case "bottom": + n -= i + } + switch (w) { + case "center": + o -= s / 2; + break; + case "right": + o -= s + } + d = { + left: o, + top: n, + width: s + e.width, + height: i + e.height, + color: t.backdropColor + } + } + p.push({ + rotation: g, + label: _, + font: k, + color: i, + strokeColor: r, + strokeWidth: h, + textOffset: D, + textAlign: u, + textBaseline: C, + translation: [y, v], + backdrop: d + }) + } + return p + } + _getXAxisLabelAlignment() { + const {position: t, ticks: e} = this.options; + if (-Yt(this.labelRotation)) + return "top" === t ? "left" : "right"; + let i = "center"; + return "start" === e.align ? i = "left" : "end" === e.align ? i = "right" : "inner" === e.align && (i = "inner"), + i + } + _getYAxisLabelAlignment(t) { + const {position: e, ticks: {crossAlign: i, mirror: s, padding: n}} = this.options + , o = t + n + , a = this._getLabelSizes().widest.width; + let r, l; + return "left" === e ? s ? (l = this.right + n, + "near" === i ? r = "left" : "center" === i ? (r = "center", + l += a / 2) : (r = "right", + l += a)) : (l = this.right - o, + "near" === i ? r = "right" : "center" === i ? (r = "center", + l -= a / 2) : (r = "left", + l = this.left)) : "right" === e ? s ? (l = this.left + n, + "near" === i ? r = "right" : "center" === i ? (r = "center", + l -= a / 2) : (r = "left", + l -= a)) : (l = this.left + o, + "near" === i ? r = "left" : "center" === i ? (r = "center", + l += a / 2) : (r = "right", + l = this.right)) : r = "right", + { + textAlign: r, + x: l + } + } + _computeLabelArea() { + if (this.options.ticks.mirror) + return; + const t = this.chart + , e = this.options.position; + return "left" === e || "right" === e ? { + top: 0, + left: this.left, + bottom: t.height, + right: this.right + } : "top" === e || "bottom" === e ? { + top: this.top, + left: 0, + bottom: this.bottom, + right: t.width + } : void 0 + } + drawBackground() { + const {ctx: t, options: {backgroundColor: e}, left: i, top: s, width: n, height: o} = this; + e && (t.save(), + t.fillStyle = e, + t.fillRect(i, s, n, o), + t.restore()) + } + getLineWidthForValue(t) { + const e = this.options.grid; + if (!this._isVisible() || !e.display) + return 0; + const i = this.ticks.findIndex((e=>e.value === t)); + if (i >= 0) { + return e.setContext(this.getContext(i)).lineWidth + } + return 0 + } + drawGrid(t) { + const e = this.options.grid + , i = this.ctx + , s = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(t)); + let n, o; + const a = (t,e,s)=>{ + s.width && s.color && (i.save(), + i.lineWidth = s.width, + i.strokeStyle = s.color, + i.setLineDash(s.borderDash || []), + i.lineDashOffset = s.borderDashOffset, + i.beginPath(), + i.moveTo(t.x, t.y), + i.lineTo(e.x, e.y), + i.stroke(), + i.restore()) + } + ; + if (e.display) + for (n = 0, + o = s.length; n < o; ++n) { + const t = s[n]; + e.drawOnChartArea && a({ + x: t.x1, + y: t.y1 + }, { + x: t.x2, + y: t.y2 + }, t), + e.drawTicks && a({ + x: t.tx1, + y: t.ty1 + }, { + x: t.tx2, + y: t.ty2 + }, { + color: t.tickColor, + width: t.tickWidth, + borderDash: t.tickBorderDash, + borderDashOffset: t.tickBorderDashOffset + }) + } + } + drawBorder() { + const {chart: t, ctx: e, options: {grid: i}} = this + , s = i.setContext(this.getContext()) + , n = i.drawBorder ? s.borderWidth : 0; + if (!n) + return; + const o = i.setContext(this.getContext(0)).lineWidth + , a = this._borderValue; + let r, l, h, c; + this.isHorizontal() ? (r = xe(t, this.left, n) - n / 2, + l = xe(t, this.right, o) + o / 2, + h = c = a) : (h = xe(t, this.top, n) - n / 2, + c = xe(t, this.bottom, o) + o / 2, + r = l = a), + e.save(), + e.lineWidth = s.borderWidth, + e.strokeStyle = s.borderColor, + e.beginPath(), + e.moveTo(r, h), + e.lineTo(l, c), + e.stroke(), + e.restore() + } + drawLabels(t) { + if (!this.options.ticks.display) + return; + const e = this.ctx + , i = this._computeLabelArea(); + i && Me(e, i); + const s = this._labelItems || (this._labelItems = this._computeLabelItems(t)); + let n, o; + for (n = 0, + o = s.length; n < o; ++n) { + const t = s[n] + , i = t.font + , o = t.label; + t.backdrop && (e.fillStyle = t.backdrop.color, + e.fillRect(t.backdrop.left, t.backdrop.top, t.backdrop.width, t.backdrop.height)), + De(e, o, 0, t.textOffset, i, t) + } + i && ke(e) + } + drawTitle() { + const {ctx: t, options: {position: e, title: i, reverse: s}} = this; + if (!i.display) + return; + const o = fi(i.font) + , a = ui(i.padding) + , r = i.align; + let l = o.lineHeight / 2; + "bottom" === e || "center" === e || q(e) ? (l += a.bottom, + X(i.text) && (l += o.lineHeight * (i.text.length - 1))) : l += a.top; + const {titleX: h, titleY: c, maxWidth: d, rotation: u} = function(t, e, i, s) { + const {top: o, left: a, bottom: r, right: l, chart: h} = t + , {chartArea: c, scales: d} = h; + let u, f, g, p = 0; + const m = r - o + , b = l - a; + if (t.isHorizontal()) { + if (f = n(s, a, l), + q(i)) { + const t = Object.keys(i)[0] + , s = i[t]; + g = d[t].getPixelForValue(s) + m - e + } else + g = "center" === i ? (c.bottom + c.top) / 2 + m - e : Is(t, i, e); + u = l - a + } else { + if (q(i)) { + const t = Object.keys(i)[0] + , s = i[t]; + f = d[t].getPixelForValue(s) - b + e + } else + f = "center" === i ? (c.left + c.right) / 2 - b + e : Is(t, i, e); + g = n(s, r, o), + p = "left" === i ? -Et : Et + } + return { + titleX: f, + titleY: g, + maxWidth: u, + rotation: p + } + }(this, l, e, r); + De(t, i.text, 0, 0, o, { + color: i.color, + maxWidth: d, + rotation: u, + textAlign: Ws(r, e, s), + textBaseline: "middle", + translation: [h, c] + }) + } + draw(t) { + this._isVisible() && (this.drawBackground(), + this.drawGrid(t), + this.drawBorder(), + this.drawTitle(), + this.drawLabels(t)) + } + _layers() { + const t = this.options + , e = t.ticks && t.ticks.z || 0 + , i = Z(t.grid && t.grid.z, -1); + return this._isVisible() && this.draw === Ns.prototype.draw ? [{ + z: i, + draw: t=>{ + this.drawBackground(), + this.drawGrid(t), + this.drawTitle() + } + }, { + z: i + 1, + draw: ()=>{ + this.drawBorder() + } + }, { + z: e, + draw: t=>{ + this.drawLabels(t) + } + }] : [{ + z: e, + draw: t=>{ + this.draw(t) + } + }] + } + getMatchingVisibleMetas(t) { + const e = this.chart.getSortedVisibleDatasetMetas() + , i = this.axis + "AxisID" + , s = []; + let n, o; + for (n = 0, + o = e.length; n < o; ++n) { + const o = e[n]; + o[i] !== this.id || t && o.type !== t || s.push(o) + } + return s + } + _resolveTickFontOptions(t) { + return fi(this.options.ticks.setContext(this.getContext(t)).font) + } + _maxDigits() { + const t = this._resolveTickFontOptions(0).lineHeight; + return (this.isHorizontal() ? this.width : this.height) / t + } + } + class js { + constructor(t, e, i) { + this.type = t, + this.scope = e, + this.override = i, + this.items = Object.create(null) + } + isForType(t) { + return Object.prototype.isPrototypeOf.call(this.type.prototype, t.prototype) + } + register(t) { + const e = Object.getPrototypeOf(t); + let i; + (function(t) { + return "id"in t && "defaults"in t + } + )(e) && (i = this.register(e)); + const s = this.items + , n = t.id + , o = this.scope + "." + n; + if (!n) + throw new Error("class does not have id: " + t); + return n in s || (s[n] = t, + function(t, e, i) { + const s = at(Object.create(null), [i ? yt.get(i) : {}, yt.get(e), t.defaults]); + yt.set(e, s), + t.defaultRoutes && function(t, e) { + Object.keys(e).forEach((i=>{ + const s = i.split(".") + , n = s.pop() + , o = [t].concat(s).join(".") + , a = e[i].split(".") + , r = a.pop() + , l = a.join("."); + yt.route(o, n, l, r) + } + )) + }(e, t.defaultRoutes); + t.descriptors && yt.describe(e, t.descriptors) + }(t, o, i), + this.override && yt.override(t.id, t.overrides)), + o + } + get(t) { + return this.items[t] + } + unregister(t) { + const e = this.items + , i = t.id + , s = this.scope; + i in e && delete e[i], + s && i in yt[s] && (delete yt[s][i], + this.override && delete mt[i]) + } + } + var Hs = new class { + constructor() { + this.controllers = new js(Os,"datasets",!0), + this.elements = new js(As,"elements"), + this.plugins = new js(Object,"plugins"), + this.scales = new js(Ns,"scales"), + this._typedRegistries = [this.controllers, this.scales, this.elements] + } + add(...t) { + this._each("register", t) + } + remove(...t) { + this._each("unregister", t) + } + addControllers(...t) { + this._each("register", t, this.controllers) + } + addElements(...t) { + this._each("register", t, this.elements) + } + addPlugins(...t) { + this._each("register", t, this.plugins) + } + addScales(...t) { + this._each("register", t, this.scales) + } + getController(t) { + return this._get(t, this.controllers, "controller") + } + getElement(t) { + return this._get(t, this.elements, "element") + } + getPlugin(t) { + return this._get(t, this.plugins, "plugin") + } + getScale(t) { + return this._get(t, this.scales, "scale") + } + removeControllers(...t) { + this._each("unregister", t, this.controllers) + } + removeElements(...t) { + this._each("unregister", t, this.elements) + } + removePlugins(...t) { + this._each("unregister", t, this.plugins) + } + removeScales(...t) { + this._each("unregister", t, this.scales) + } + _each(t, e, i) { + [...e].forEach((e=>{ + const s = i || this._getRegistryForType(e); + i || s.isForType(e) || s === this.plugins && e.id ? this._exec(t, s, e) : et(e, (e=>{ + const s = i || this._getRegistryForType(e); + this._exec(t, s, e) + } + )) + } + )) + } + _exec(t, e, i) { + const s = dt(t); + tt(i["before" + s], [], i), + e[t](i), + tt(i["after" + s], [], i) + } + _getRegistryForType(t) { + for (let e = 0; e < this._typedRegistries.length; e++) { + const i = this._typedRegistries[e]; + if (i.isForType(t)) + return i + } + return this.plugins + } + _get(t, e, i) { + const s = e.get(t); + if (void 0 === s) + throw new Error('"' + t + '" is not a registered ' + i + "."); + return s + } + } + ; + class $s { + constructor() { + this._init = [] + } + notify(t, e, i, s) { + "beforeInit" === e && (this._init = this._createDescriptors(t, !0), + this._notify(this._init, t, "install")); + const n = s ? this._descriptors(t).filter(s) : this._descriptors(t) + , o = this._notify(n, t, e, i); + return "afterDestroy" === e && (this._notify(n, t, "stop"), + this._notify(this._init, t, "uninstall")), + o + } + _notify(t, e, i, s) { + s = s || {}; + for (const n of t) { + const t = n.plugin; + if (!1 === tt(t[i], [e, s, n.options], t) && s.cancelable) + return !1 + } + return !0 + } + invalidate() { + U(this._cache) || (this._oldCache = this._cache, + this._cache = void 0) + } + _descriptors(t) { + if (this._cache) + return this._cache; + const e = this._cache = this._createDescriptors(t); + return this._notifyStateChanges(t), + e + } + _createDescriptors(t, e) { + const i = t && t.config + , s = Z(i.options && i.options.plugins, {}) + , n = function(t) { + const e = {} + , i = [] + , s = Object.keys(Hs.plugins.items); + for (let t = 0; t < s.length; t++) + i.push(Hs.getPlugin(s[t])); + const n = t.plugins || []; + for (let t = 0; t < n.length; t++) { + const s = n[t]; + -1 === i.indexOf(s) && (i.push(s), + e[s.id] = !0) + } + return { + plugins: i, + localIds: e + } + }(i); + return !1 !== s || e ? function(t, {plugins: e, localIds: i}, s, n) { + const o = [] + , a = t.getContext(); + for (const r of e) { + const e = r.id + , l = Ys(s[e], n); + null !== l && o.push({ + plugin: r, + options: Us(t.config, { + plugin: r, + local: i[e] + }, l, a) + }) + } + return o + }(t, n, s, e) : [] + } + _notifyStateChanges(t) { + const e = this._oldCache || [] + , i = this._cache + , s = (t,e)=>t.filter((t=>!e.some((e=>t.plugin.id === e.plugin.id)))); + this._notify(s(e, i), t, "stop"), + this._notify(s(i, e), t, "start") + } + } + function Ys(t, e) { + return e || !1 !== t ? !0 === t ? {} : t : null + } + function Us(t, {plugin: e, local: i}, s, n) { + const o = t.pluginScopeKeys(e) + , a = t.getOptionScopes(s, o); + return i && e.defaults && a.push(e.defaults), + t.createResolver(a, n, [""], { + scriptable: !1, + indexable: !1, + allKeys: !0 + }) + } + function Xs(t, e) { + const i = yt.datasets[t] || {}; + return ((e.datasets || {})[t] || {}).indexAxis || e.indexAxis || i.indexAxis || "x" + } + function qs(t, e) { + return "x" === t || "y" === t ? t : e.axis || ("top" === (i = e.position) || "bottom" === i ? "x" : "left" === i || "right" === i ? "y" : void 0) || t.charAt(0).toLowerCase(); + var i + } + function Ks(t) { + const e = t.options || (t.options = {}); + e.plugins = Z(e.plugins, {}), + e.scales = function(t, e) { + const i = mt[t.type] || { + scales: {} + } + , s = e.scales || {} + , n = Xs(t.type, e) + , o = Object.create(null) + , a = Object.create(null); + return Object.keys(s).forEach((t=>{ + const e = s[t]; + if (!q(e)) + return console.error(`Invalid scale configuration for scale: ${t}`); + if (e._proxy) + return console.warn(`Ignoring resolver passed as options for scale: ${t}`); + const r = qs(t, e) + , l = function(t, e) { + return t === e ? "_index_" : "_value_" + }(r, n) + , h = i.scales || {}; + o[r] = o[r] || t, + a[t] = rt(Object.create(null), [{ + axis: r + }, e, h[r], h[l]]) + } + )), + t.data.datasets.forEach((i=>{ + const n = i.type || t.type + , r = i.indexAxis || Xs(n, e) + , l = (mt[n] || {}).scales || {}; + Object.keys(l).forEach((t=>{ + const e = function(t, e) { + let i = t; + return "_index_" === t ? i = e : "_value_" === t && (i = "x" === e ? "y" : "x"), + i + }(t, r) + , n = i[e + "AxisID"] || o[e] || e; + a[n] = a[n] || Object.create(null), + rt(a[n], [{ + axis: e + }, s[n], l[t]]) + } + )) + } + )), + Object.keys(a).forEach((t=>{ + const e = a[t]; + rt(e, [yt.scales[e.type], yt.scale]) + } + )), + a + }(t, e) + } + function Gs(t) { + return (t = t || {}).datasets = t.datasets || [], + t.labels = t.labels || [], + t + } + const Zs = new Map + , Js = new Set; + function Qs(t, e) { + let i = Zs.get(t); + return i || (i = e(), + Zs.set(t, i), + Js.add(i)), + i + } + const tn = (t,e,i)=>{ + const s = ct(e, i); + void 0 !== s && t.add(s) + } + ; + class en { + constructor(t) { + this._config = function(t) { + return (t = t || {}).data = Gs(t.data), + Ks(t), + t + }(t), + this._scopeCache = new Map, + this._resolverCache = new Map + } + get platform() { + return this._config.platform + } + get type() { + return this._config.type + } + set type(t) { + this._config.type = t + } + get data() { + return this._config.data + } + set data(t) { + this._config.data = Gs(t) + } + get options() { + return this._config.options + } + set options(t) { + this._config.options = t + } + get plugins() { + return this._config.plugins + } + update() { + const t = this._config; + this.clearCache(), + Ks(t) + } + clearCache() { + this._scopeCache.clear(), + this._resolverCache.clear() + } + datasetScopeKeys(t) { + return Qs(t, (()=>[[`datasets.${t}`, ""]])) + } + datasetAnimationScopeKeys(t, e) { + return Qs(`${t}.transition.${e}`, (()=>[[`datasets.${t}.transitions.${e}`, `transitions.${e}`], [`datasets.${t}`, ""]])) + } + datasetElementScopeKeys(t, e) { + return Qs(`${t}-${e}`, (()=>[[`datasets.${t}.elements.${e}`, `datasets.${t}`, `elements.${e}`, ""]])) + } + pluginScopeKeys(t) { + const e = t.id; + return Qs(`${this.type}-plugin-${e}`, (()=>[[`plugins.${e}`, ...t.additionalOptionScopes || []]])) + } + _cachedScopes(t, e) { + const i = this._scopeCache; + let s = i.get(t); + return s && !e || (s = new Map, + i.set(t, s)), + s + } + getOptionScopes(t, e, i) { + const {options: s, type: n} = this + , o = this._cachedScopes(t, i) + , a = o.get(e); + if (a) + return a; + const r = new Set; + e.forEach((e=>{ + t && (r.add(t), + e.forEach((e=>tn(r, t, e)))), + e.forEach((t=>tn(r, s, t))), + e.forEach((t=>tn(r, mt[n] || {}, t))), + e.forEach((t=>tn(r, yt, t))), + e.forEach((t=>tn(r, bt, t))) + } + )); + const l = Array.from(r); + return 0 === l.length && l.push(Object.create(null)), + Js.has(e) && o.set(e, l), + l + } + chartOptionScopes() { + const {options: t, type: e} = this; + return [t, mt[e] || {}, yt.datasets[e] || {}, { + type: e + }, yt, bt] + } + resolveNamedOptions(t, e, i, s=[""]) { + const n = { + $shared: !0 + } + , {resolver: o, subPrefixes: a} = sn(this._resolverCache, t, s); + let r = o; + if (function(t, e) { + const {isScriptable: i, isIndexable: s} = Le(t); + for (const n of e) { + const e = i(n) + , o = s(n) + , a = (o || e) && t[n]; + if (e && (ft(a) || nn(a)) || o && X(a)) + return !0 + } + return !1 + }(o, e)) { + n.$shared = !1; + r = Te(o, i = ft(i) ? i() : i, this.createResolver(t, i, a)) + } + for (const t of e) + n[t] = r[t]; + return n + } + createResolver(t, e, i=[""], s) { + const {resolver: n} = sn(this._resolverCache, t, i); + return q(e) ? Te(n, e, void 0, s) : n + } + } + function sn(t, e, i) { + let s = t.get(e); + s || (s = new Map, + t.set(e, s)); + const n = i.join(); + let o = s.get(n); + if (!o) { + o = { + resolver: Ae(e, i), + subPrefixes: i.filter((t=>!t.toLowerCase().includes("hover"))) + }, + s.set(n, o) + } + return o + } + const nn = t=>q(t) && Object.getOwnPropertyNames(t).reduce(((e,i)=>e || ft(t[i])), !1); + const on = ["top", "bottom", "left", "right", "chartArea"]; + function an(t, e) { + return "top" === t || "bottom" === t || -1 === on.indexOf(t) && "x" === e + } + function rn(t, e) { + return function(i, s) { + return i[t] === s[t] ? i[e] - s[e] : i[t] - s[t] + } + } + function ln(t) { + const e = t.chart + , i = e.options.animation; + e.notifyPlugins("afterRender"), + tt(i && i.onComplete, [t], e) + } + function hn(t) { + const e = t.chart + , i = e.options.animation; + tt(i && i.onProgress, [t], e) + } + function cn(t) { + return ie() && "string" == typeof t ? t = document.getElementById(t) : t && t.length && (t = t[0]), + t && t.canvas && (t = t.canvas), + t + } + const dn = {} + , un = t=>{ + const e = cn(t); + return Object.values(dn).filter((t=>t.canvas === e)).pop() + } + ; + function fn(t, e, i) { + const s = Object.keys(t); + for (const n of s) { + const s = +n; + if (s >= e) { + const o = t[n]; + delete t[n], + (i > 0 || s > e) && (t[s + i] = o) + } + } + } + class gn { + constructor(t, e) { + const s = this.config = new en(e) + , n = cn(t) + , o = un(n); + if (o) + throw new Error("Canvas is already in use. Chart with ID '" + o.id + "' must be destroyed before the canvas with ID '" + o.canvas.id + "' can be reused."); + const r = s.createResolver(s.chartOptionScopes(), this.getContext()); + this.platform = new (s.platform || ds(n)), + this.platform.updateConfig(s); + const l = this.platform.acquireContext(n, r.aspectRatio) + , h = l && l.canvas + , c = h && h.height + , d = h && h.width; + this.id = Y(), + this.ctx = l, + this.canvas = h, + this.width = d, + this.height = c, + this._options = r, + this._aspectRatio = this.aspectRatio, + this._layers = [], + this._metasets = [], + this._stacks = void 0, + this.boxes = [], + this.currentDevicePixelRatio = void 0, + this.chartArea = void 0, + this._active = [], + this._lastEvent = void 0, + this._listeners = {}, + this._responsiveListeners = void 0, + this._sortedMetasets = [], + this.scales = {}, + this._plugins = new $s, + this.$proxies = {}, + this._hiddenIndices = {}, + this.attached = !1, + this._animationsDisabled = void 0, + this.$context = void 0, + this._doResize = i((t=>this.update(t)), r.resizeDelay || 0), + this._dataChanges = [], + dn[this.id] = this, + l && h ? (a.listen(this, "complete", ln), + a.listen(this, "progress", hn), + this._initialize(), + this.attached && this.update()) : console.error("Failed to create chart: can't acquire context from the given item") + } + get aspectRatio() { + const {options: {aspectRatio: t, maintainAspectRatio: e}, width: i, height: s, _aspectRatio: n} = this; + return U(t) ? e && n ? n : s ? i / s : null : t + } + get data() { + return this.config.data + } + set data(t) { + this.config.data = t + } + get options() { + return this._options + } + set options(t) { + this.config.options = t + } + _initialize() { + return this.notifyPlugins("beforeInit"), + this.options.responsive ? this.resize() : ue(this, this.options.devicePixelRatio), + this.bindEvents(), + this.notifyPlugins("afterInit"), + this + } + clear() { + return _e(this.canvas, this.ctx), + this + } + stop() { + return a.stop(this), + this + } + resize(t, e) { + a.running(this) ? this._resizeBeforeDraw = { + width: t, + height: e + } : this._resize(t, e) + } + _resize(t, e) { + const i = this.options + , s = this.canvas + , n = i.maintainAspectRatio && this.aspectRatio + , o = this.platform.getMaximumSize(s, t, e, n) + , a = i.devicePixelRatio || this.platform.getDevicePixelRatio() + , r = this.width ? "resize" : "attach"; + this.width = o.width, + this.height = o.height, + this._aspectRatio = this.aspectRatio, + ue(this, a, !0) && (this.notifyPlugins("resize", { + size: o + }), + tt(i.onResize, [this, o], this), + this.attached && this._doResize(r) && this.render()) + } + ensureScalesHaveIDs() { + et(this.options.scales || {}, ((t,e)=>{ + t.id = e + } + )) + } + buildOrUpdateScales() { + const t = this.options + , e = t.scales + , i = this.scales + , s = Object.keys(i).reduce(((t,e)=>(t[e] = !1, + t)), {}); + let n = []; + e && (n = n.concat(Object.keys(e).map((t=>{ + const i = e[t] + , s = qs(t, i) + , n = "r" === s + , o = "x" === s; + return { + options: i, + dposition: n ? "chartArea" : o ? "bottom" : "left", + dtype: n ? "radialLinear" : o ? "category" : "linear" + } + } + )))), + et(n, (e=>{ + const n = e.options + , o = n.id + , a = qs(o, n) + , r = Z(n.type, e.dtype); + void 0 !== n.position && an(n.position, a) === an(e.dposition) || (n.position = e.dposition), + s[o] = !0; + let l = null; + if (o in i && i[o].type === r) + l = i[o]; + else { + l = new (Hs.getScale(r))({ + id: o, + type: r, + ctx: this.ctx, + chart: this + }), + i[l.id] = l + } + l.init(n, t) + } + )), + et(s, ((t,e)=>{ + t || delete i[e] + } + )), + et(i, (t=>{ + qi.configure(this, t, t.options), + qi.addBox(this, t) + } + )) + } + _updateMetasets() { + const t = this._metasets + , e = this.data.datasets.length + , i = t.length; + if (t.sort(((t,e)=>t.index - e.index)), + i > e) { + for (let t = e; t < i; ++t) + this._destroyDatasetMeta(t); + t.splice(e, i - e) + } + this._sortedMetasets = t.slice(0).sort(rn("order", "index")) + } + _removeUnreferencedMetasets() { + const {_metasets: t, data: {datasets: e}} = this; + t.length > e.length && delete this._stacks, + t.forEach(((t,i)=>{ + 0 === e.filter((e=>e === t._dataset)).length && this._destroyDatasetMeta(i) + } + )) + } + buildOrUpdateControllers() { + const t = [] + , e = this.data.datasets; + let i, s; + for (this._removeUnreferencedMetasets(), + i = 0, + s = e.length; i < s; i++) { + const s = e[i]; + let n = this.getDatasetMeta(i); + const o = s.type || this.config.type; + if (n.type && n.type !== o && (this._destroyDatasetMeta(i), + n = this.getDatasetMeta(i)), + n.type = o, + n.indexAxis = s.indexAxis || Xs(o, this.options), + n.order = s.order || 0, + n.index = i, + n.label = "" + s.label, + n.visible = this.isDatasetVisible(i), + n.controller) + n.controller.updateIndex(i), + n.controller.linkScales(); + else { + const e = Hs.getController(o) + , {datasetElementType: s, dataElementType: a} = yt.datasets[o]; + Object.assign(e.prototype, { + dataElementType: Hs.getElement(a), + datasetElementType: s && Hs.getElement(s) + }), + n.controller = new e(this,i), + t.push(n.controller) + } + } + return this._updateMetasets(), + t + } + _resetElements() { + et(this.data.datasets, ((t,e)=>{ + this.getDatasetMeta(e).controller.reset() + } + ), this) + } + reset() { + this._resetElements(), + this.notifyPlugins("reset") + } + update(t) { + const e = this.config; + e.update(); + const i = this._options = e.createResolver(e.chartOptionScopes(), this.getContext()) + , s = this._animationsDisabled = !i.animation; + if (this._updateScales(), + this._checkEventBindings(), + this._updateHiddenIndices(), + this._plugins.invalidate(), + !1 === this.notifyPlugins("beforeUpdate", { + mode: t, + cancelable: !0 + })) + return; + const n = this.buildOrUpdateControllers(); + this.notifyPlugins("beforeElementsUpdate"); + let o = 0; + for (let t = 0, e = this.data.datasets.length; t < e; t++) { + const {controller: e} = this.getDatasetMeta(t) + , i = !s && -1 === n.indexOf(e); + e.buildOrUpdateElements(i), + o = Math.max(+e.getMaxOverflow(), o) + } + o = this._minPadding = i.layout.autoPadding ? o : 0, + this._updateLayout(o), + s || et(n, (t=>{ + t.reset() + } + )), + this._updateDatasets(t), + this.notifyPlugins("afterUpdate", { + mode: t + }), + this._layers.sort(rn("z", "_idx")); + const {_active: a, _lastEvent: r} = this; + r ? this._eventHandler(r, !0) : a.length && this._updateHoverStyles(a, a, !0), + this.render() + } + _updateScales() { + et(this.scales, (t=>{ + qi.removeBox(this, t) + } + )), + this.ensureScalesHaveIDs(), + this.buildOrUpdateScales() + } + _checkEventBindings() { + const t = this.options + , e = new Set(Object.keys(this._listeners)) + , i = new Set(t.events); + gt(e, i) && !!this._responsiveListeners === t.responsive || (this.unbindEvents(), + this.bindEvents()) + } + _updateHiddenIndices() { + const {_hiddenIndices: t} = this + , e = this._getUniformDataChanges() || []; + for (const {method: i, start: s, count: n} of e) { + fn(t, s, "_removeElements" === i ? -n : n) + } + } + _getUniformDataChanges() { + const t = this._dataChanges; + if (!t || !t.length) + return; + this._dataChanges = []; + const e = this.data.datasets.length + , i = e=>new Set(t.filter((t=>t[0] === e)).map(((t,e)=>e + "," + t.splice(1).join(",")))) + , s = i(0); + for (let t = 1; t < e; t++) + if (!gt(s, i(t))) + return; + return Array.from(s).map((t=>t.split(","))).map((t=>({ + method: t[1], + start: +t[2], + count: +t[3] + }))) + } + _updateLayout(t) { + if (!1 === this.notifyPlugins("beforeLayout", { + cancelable: !0 + })) + return; + qi.update(this, this.width, this.height, t); + const e = this.chartArea + , i = e.width <= 0 || e.height <= 0; + this._layers = [], + et(this.boxes, (t=>{ + i && "chartArea" === t.position || (t.configure && t.configure(), + this._layers.push(...t._layers())) + } + ), this), + this._layers.forEach(((t,e)=>{ + t._idx = e + } + )), + this.notifyPlugins("afterLayout") + } + _updateDatasets(t) { + if (!1 !== this.notifyPlugins("beforeDatasetsUpdate", { + mode: t, + cancelable: !0 + })) { + for (let t = 0, e = this.data.datasets.length; t < e; ++t) + this.getDatasetMeta(t).controller.configure(); + for (let e = 0, i = this.data.datasets.length; e < i; ++e) + this._updateDataset(e, ft(t) ? t({ + datasetIndex: e + }) : t); + this.notifyPlugins("afterDatasetsUpdate", { + mode: t + }) + } + } + _updateDataset(t, e) { + const i = this.getDatasetMeta(t) + , s = { + meta: i, + index: t, + mode: e, + cancelable: !0 + }; + !1 !== this.notifyPlugins("beforeDatasetUpdate", s) && (i.controller._update(e), + s.cancelable = !1, + this.notifyPlugins("afterDatasetUpdate", s)) + } + render() { + !1 !== this.notifyPlugins("beforeRender", { + cancelable: !0 + }) && (a.has(this) ? this.attached && !a.running(this) && a.start(this) : (this.draw(), + ln({ + chart: this + }))) + } + draw() { + let t; + if (this._resizeBeforeDraw) { + const {width: t, height: e} = this._resizeBeforeDraw; + this._resize(t, e), + this._resizeBeforeDraw = null + } + if (this.clear(), + this.width <= 0 || this.height <= 0) + return; + if (!1 === this.notifyPlugins("beforeDraw", { + cancelable: !0 + })) + return; + const e = this._layers; + for (t = 0; t < e.length && e[t].z <= 0; ++t) + e[t].draw(this.chartArea); + for (this._drawDatasets(); t < e.length; ++t) + e[t].draw(this.chartArea); + this.notifyPlugins("afterDraw") + } + _getSortedDatasetMetas(t) { + const e = this._sortedMetasets + , i = []; + let s, n; + for (s = 0, + n = e.length; s < n; ++s) { + const n = e[s]; + t && !n.visible || i.push(n) + } + return i + } + getSortedVisibleDatasetMetas() { + return this._getSortedDatasetMetas(!0) + } + _drawDatasets() { + if (!1 === this.notifyPlugins("beforeDatasetsDraw", { + cancelable: !0 + })) + return; + const t = this.getSortedVisibleDatasetMetas(); + for (let e = t.length - 1; e >= 0; --e) + this._drawDataset(t[e]); + this.notifyPlugins("afterDatasetsDraw") + } + _drawDataset(t) { + const e = this.ctx + , i = t._clip + , s = !i.disabled + , n = this.chartArea + , o = { + meta: t, + index: t.index, + cancelable: !0 + }; + !1 !== this.notifyPlugins("beforeDatasetDraw", o) && (s && Me(e, { + left: !1 === i.left ? 0 : n.left - i.left, + right: !1 === i.right ? this.width : n.right + i.right, + top: !1 === i.top ? 0 : n.top - i.top, + bottom: !1 === i.bottom ? this.height : n.bottom + i.bottom + }), + t.controller.draw(), + s && ke(e), + o.cancelable = !1, + this.notifyPlugins("afterDatasetDraw", o)) + } + isPointInArea(t) { + return we(t, this.chartArea, this._minPadding) + } + getElementsAtEventForMode(t, e, i, s) { + const n = Ii.modes[e]; + return "function" == typeof n ? n(this, t, i, s) : [] + } + getDatasetMeta(t) { + const e = this.data.datasets[t] + , i = this._metasets; + let s = i.filter((t=>t && t._dataset === e)).pop(); + return s || (s = { + type: null, + data: [], + dataset: null, + controller: null, + hidden: null, + xAxisID: null, + yAxisID: null, + order: e && e.order || 0, + index: t, + _dataset: e, + _parsed: [], + _sorted: !1 + }, + i.push(s)), + s + } + getContext() { + return this.$context || (this.$context = mi(null, { + chart: this, + type: "chart" + })) + } + getVisibleDatasetCount() { + return this.getSortedVisibleDatasetMetas().length + } + isDatasetVisible(t) { + const e = this.data.datasets[t]; + if (!e) + return !1; + const i = this.getDatasetMeta(t); + return "boolean" == typeof i.hidden ? !i.hidden : !e.hidden + } + setDatasetVisibility(t, e) { + this.getDatasetMeta(t).hidden = !e + } + toggleDataVisibility(t) { + this._hiddenIndices[t] = !this._hiddenIndices[t] + } + getDataVisibility(t) { + return !this._hiddenIndices[t] + } + _updateVisibility(t, e, i) { + const s = i ? "show" : "hide" + , n = this.getDatasetMeta(t) + , o = n.controller._resolveAnimations(void 0, s); + ut(e) ? (n.data[e].hidden = !i, + this.update()) : (this.setDatasetVisibility(t, i), + o.update(n, { + visible: i + }), + this.update((e=>e.datasetIndex === t ? s : void 0))) + } + hide(t, e) { + this._updateVisibility(t, e, !1) + } + show(t, e) { + this._updateVisibility(t, e, !0) + } + _destroyDatasetMeta(t) { + const e = this._metasets[t]; + e && e.controller && e.controller._destroy(), + delete this._metasets[t] + } + _stop() { + let t, e; + for (this.stop(), + a.remove(this), + t = 0, + e = this.data.datasets.length; t < e; ++t) + this._destroyDatasetMeta(t) + } + destroy() { + this.notifyPlugins("beforeDestroy"); + const {canvas: t, ctx: e} = this; + this._stop(), + this.config.clearCache(), + t && (this.unbindEvents(), + _e(t, e), + this.platform.releaseContext(e), + this.canvas = null, + this.ctx = null), + this.notifyPlugins("destroy"), + delete dn[this.id], + this.notifyPlugins("afterDestroy") + } + toBase64Image(...t) { + return this.canvas.toDataURL(...t) + } + bindEvents() { + this.bindUserEvents(), + this.options.responsive ? this.bindResponsiveEvents() : this.attached = !0 + } + bindUserEvents() { + const t = this._listeners + , e = this.platform + , i = (i,s)=>{ + e.addEventListener(this, i, s), + t[i] = s + } + , s = (t,e,i)=>{ + t.offsetX = e, + t.offsetY = i, + this._eventHandler(t) + } + ; + et(this.options.events, (t=>i(t, s))) + } + bindResponsiveEvents() { + this._responsiveListeners || (this._responsiveListeners = {}); + const t = this._responsiveListeners + , e = this.platform + , i = (i,s)=>{ + e.addEventListener(this, i, s), + t[i] = s + } + , s = (i,s)=>{ + t[i] && (e.removeEventListener(this, i, s), + delete t[i]) + } + , n = (t,e)=>{ + this.canvas && this.resize(t, e) + } + ; + let o; + const a = ()=>{ + s("attach", a), + this.attached = !0, + this.resize(), + i("resize", n), + i("detach", o) + } + ; + o = ()=>{ + this.attached = !1, + s("resize", n), + this._stop(), + this._resize(0, 0), + i("attach", a) + } + , + e.isAttached(this.canvas) ? a() : o() + } + unbindEvents() { + et(this._listeners, ((t,e)=>{ + this.platform.removeEventListener(this, e, t) + } + )), + this._listeners = {}, + et(this._responsiveListeners, ((t,e)=>{ + this.platform.removeEventListener(this, e, t) + } + )), + this._responsiveListeners = void 0 + } + updateHoverStyle(t, e, i) { + const s = i ? "set" : "remove"; + let n, o, a, r; + for ("dataset" === e && (n = this.getDatasetMeta(t[0].datasetIndex), + n.controller["_" + s + "DatasetHoverStyle"]()), + a = 0, + r = t.length; a < r; ++a) { + o = t[a]; + const e = o && this.getDatasetMeta(o.datasetIndex).controller; + e && e[s + "HoverStyle"](o.element, o.datasetIndex, o.index) + } + } + getActiveElements() { + return this._active || [] + } + setActiveElements(t) { + const e = this._active || [] + , i = t.map((({datasetIndex: t, index: e})=>{ + const i = this.getDatasetMeta(t); + if (!i) + throw new Error("No dataset found at index " + t); + return { + datasetIndex: t, + element: i.data[e], + index: e + } + } + )); + !it(i, e) && (this._active = i, + this._lastEvent = null, + this._updateHoverStyles(i, e)) + } + notifyPlugins(t, e, i) { + return this._plugins.notify(this, t, e, i) + } + _updateHoverStyles(t, e, i) { + const s = this.options.hover + , n = (t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex === e.datasetIndex && t.index === e.index)))) + , o = n(e, t) + , a = i ? t : n(t, e); + o.length && this.updateHoverStyle(o, s.mode, !1), + a.length && s.mode && this.updateHoverStyle(a, s.mode, !0) + } + _eventHandler(t, e) { + const i = { + event: t, + replay: e, + cancelable: !0, + inChartArea: this.isPointInArea(t) + } + , s = e=>(e.options.events || this.options.events).includes(t.native.type); + if (!1 === this.notifyPlugins("beforeEvent", i, s)) + return; + const n = this._handleEvent(t, e, i.inChartArea); + return i.cancelable = !1, + this.notifyPlugins("afterEvent", i, s), + (n || i.changed) && this.render(), + this + } + _handleEvent(t, e, i) { + const {_active: s=[], options: n} = this + , o = e + , a = this._getActiveElements(t, s, i, o) + , r = pt(t) + , l = function(t, e, i, s) { + return i && "mouseout" !== t.type ? s ? e : t : null + }(t, this._lastEvent, i, r); + i && (this._lastEvent = null, + tt(n.onHover, [t, a, this], this), + r && tt(n.onClick, [t, a, this], this)); + const h = !it(a, s); + return (h || e) && (this._active = a, + this._updateHoverStyles(a, s, e)), + this._lastEvent = l, + h + } + _getActiveElements(t, e, i, s) { + if ("mouseout" === t.type) + return []; + if (!i) + return e; + const n = this.options.hover; + return this.getElementsAtEventForMode(t, n.mode, n, s) + } + } + const pn = ()=>et(gn.instances, (t=>t._plugins.invalidate())) + , mn = !0; + function bn() { + throw new Error("This method is not implemented: Check that a complete date adapter is provided.") + } + Object.defineProperties(gn, { + defaults: { + enumerable: mn, + value: yt + }, + instances: { + enumerable: mn, + value: dn + }, + overrides: { + enumerable: mn, + value: mt + }, + registry: { + enumerable: mn, + value: Hs + }, + version: { + enumerable: mn, + value: "3.8.2" + }, + getChart: { + enumerable: mn, + value: un + }, + register: { + enumerable: mn, + value: (...t)=>{ + Hs.add(...t), + pn() + } + }, + unregister: { + enumerable: mn, + value: (...t)=>{ + Hs.remove(...t), + pn() + } + } + }); + class xn { + constructor(t) { + this.options = t || {} + } + formats() { + return bn() + } + parse(t, e) { + return bn() + } + format(t, e) { + return bn() + } + add(t, e, i) { + return bn() + } + diff(t, e, i) { + return bn() + } + startOf(t, e, i) { + return bn() + } + endOf(t, e) { + return bn() + } + } + xn.override = function(t) { + Object.assign(xn.prototype, t) + } + ; + var _n = { + _date: xn + }; + function yn(t) { + const e = t.iScale + , i = function(t, e) { + if (!t._cache.$bar) { + const i = t.getMatchingVisibleMetas(e); + let s = []; + for (let e = 0, n = i.length; e < n; e++) + s = s.concat(i[e].controller.getAllParsedValues(t)); + t._cache.$bar = Ct(s.sort(((t,e)=>t - e))) + } + return t._cache.$bar + }(e, t.type); + let s, n, o, a, r = e._length; + const l = ()=>{ + 32767 !== o && -32768 !== o && (ut(a) && (r = Math.min(r, Math.abs(o - a) || r)), + a = o) + } + ; + for (s = 0, + n = i.length; s < n; ++s) + o = e.getPixelForValue(i[s]), + l(); + for (a = void 0, + s = 0, + n = e.ticks.length; s < n; ++s) + o = e.getPixelForTick(s), + l(); + return r + } + function vn(t, e, i, s) { + return X(t) ? function(t, e, i, s) { + const n = i.parse(t[0], s) + , o = i.parse(t[1], s) + , a = Math.min(n, o) + , r = Math.max(n, o); + let l = a + , h = r; + Math.abs(a) > Math.abs(r) && (l = r, + h = a), + e[i.axis] = h, + e._custom = { + barStart: l, + barEnd: h, + start: n, + end: o, + min: a, + max: r + } + }(t, e, i, s) : e[i.axis] = i.parse(t, s), + e + } + function wn(t, e, i, s) { + const n = t.iScale + , o = t.vScale + , a = n.getLabels() + , r = n === o + , l = []; + let h, c, d, u; + for (h = i, + c = i + s; h < c; ++h) + u = e[h], + d = {}, + d[n.axis] = r || n.parse(a[h], h), + l.push(vn(u, d, o, h)); + return l + } + function Mn(t) { + return t && void 0 !== t.barStart && void 0 !== t.barEnd + } + function kn(t, e, i, s) { + let n = e.borderSkipped; + const o = {}; + if (!n) + return void (t.borderSkipped = o); + const {start: a, end: r, reverse: l, top: h, bottom: c} = function(t) { + let e, i, s, n, o; + return t.horizontal ? (e = t.base > t.x, + i = "left", + s = "right") : (e = t.base < t.y, + i = "bottom", + s = "top"), + e ? (n = "end", + o = "start") : (n = "start", + o = "end"), + { + start: i, + end: s, + reverse: e, + top: n, + bottom: o + } + }(t); + "middle" === n && i && (t.enableBorderRadius = !0, + (i._top || 0) === s ? n = h : (i._bottom || 0) === s ? n = c : (o[Sn(c, a, r, l)] = !0, + n = h)), + o[Sn(n, a, r, l)] = !0, + t.borderSkipped = o + } + function Sn(t, e, i, s) { + var n, o, a; + return s ? (a = i, + t = Pn(t = (n = t) === (o = e) ? a : n === a ? o : n, i, e)) : t = Pn(t, e, i), + t + } + function Pn(t, e, i) { + return "start" === t ? e : "end" === t ? i : t + } + function Dn(t, {inflateAmount: e}, i) { + t.inflateAmount = "auto" === e ? 1 === i ? .33 : 0 : e + } + class Cn extends Os { + parsePrimitiveData(t, e, i, s) { + return wn(t, e, i, s) + } + parseArrayData(t, e, i, s) { + return wn(t, e, i, s) + } + parseObjectData(t, e, i, s) { + const {iScale: n, vScale: o} = t + , {xAxisKey: a="x", yAxisKey: r="y"} = this._parsing + , l = "x" === n.axis ? a : r + , h = "x" === o.axis ? a : r + , c = []; + let d, u, f, g; + for (d = i, + u = i + s; d < u; ++d) + g = e[d], + f = {}, + f[n.axis] = n.parse(ct(g, l), d), + c.push(vn(ct(g, h), f, o, d)); + return c + } + updateRangeFromParsed(t, e, i, s) { + super.updateRangeFromParsed(t, e, i, s); + const n = i._custom; + n && e === this._cachedMeta.vScale && (t.min = Math.min(t.min, n.min), + t.max = Math.max(t.max, n.max)) + } + getMaxOverflow() { + return 0 + } + getLabelAndValue(t) { + const e = this._cachedMeta + , {iScale: i, vScale: s} = e + , n = this.getParsed(t) + , o = n._custom + , a = Mn(o) ? "[" + o.start + ", " + o.end + "]" : "" + s.getLabelForValue(n[s.axis]); + return { + label: "" + i.getLabelForValue(n[i.axis]), + value: a + } + } + initialize() { + this.enableOptionSharing = !0, + super.initialize(); + this._cachedMeta.stack = this.getDataset().stack + } + update(t) { + const e = this._cachedMeta; + this.updateElements(e.data, 0, e.data.length, t) + } + updateElements(t, e, i, s) { + const n = "reset" === s + , {index: o, _cachedMeta: {vScale: a}} = this + , r = a.getBasePixel() + , l = a.isHorizontal() + , h = this._getRuler() + , {sharedOptions: c, includeOptions: d} = this._getSharedOptions(e, s); + for (let u = e; u < e + i; u++) { + const e = this.getParsed(u) + , i = n || U(e[a.axis]) ? { + base: r, + head: r + } : this._calculateBarValuePixels(u) + , f = this._calculateBarIndexPixels(u, h) + , g = (e._stacks || {})[a.axis] + , p = { + horizontal: l, + base: i.base, + enableBorderRadius: !g || Mn(e._custom) || o === g._top || o === g._bottom, + x: l ? i.head : f.center, + y: l ? f.center : i.head, + height: l ? f.size : Math.abs(i.size), + width: l ? Math.abs(i.size) : f.size + }; + d && (p.options = c || this.resolveDataElementOptions(u, t[u].active ? "active" : s)); + const m = p.options || t[u].options; + kn(p, m, g, o), + Dn(p, m, h.ratio), + this.updateElement(t[u], u, p, s) + } + } + _getStacks(t, e) { + const {iScale: i} = this._cachedMeta + , s = i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)) + , n = i.options.stacked + , o = [] + , a = t=>{ + const i = t.controller.getParsed(e) + , s = i && i[t.vScale.axis]; + if (U(s) || isNaN(s)) + return !0 + } + ; + for (const i of s) + if ((void 0 === e || !a(i)) && ((!1 === n || -1 === o.indexOf(i.stack) || void 0 === n && void 0 === i.stack) && o.push(i.stack), + i.index === t)) + break; + return o.length || o.push(void 0), + o + } + _getStackCount(t) { + return this._getStacks(void 0, t).length + } + _getStackIndex(t, e, i) { + const s = this._getStacks(t, i) + , n = void 0 !== e ? s.indexOf(e) : -1; + return -1 === n ? s.length - 1 : n + } + _getRuler() { + const t = this.options + , e = this._cachedMeta + , i = e.iScale + , s = []; + let n, o; + for (n = 0, + o = e.data.length; n < o; ++n) + s.push(i.getPixelForValue(this.getParsed(n)[i.axis], n)); + const a = t.barThickness; + return { + min: a || yn(e), + pixels: s, + start: i._startPixel, + end: i._endPixel, + stackCount: this._getStackCount(), + scale: i, + grouped: t.grouped, + ratio: a ? 1 : t.categoryPercentage * t.barPercentage + } + } + _calculateBarValuePixels(t) { + const {_cachedMeta: {vScale: e, _stacked: i}, options: {base: s, minBarLength: n}} = this + , o = s || 0 + , a = this.getParsed(t) + , r = a._custom + , l = Mn(r); + let h, c, d = a[e.axis], u = 0, f = i ? this.applyStack(e, a, i) : d; + f !== d && (u = f - d, + f = d), + l && (d = r.barStart, + f = r.barEnd - r.barStart, + 0 !== d && Bt(d) !== Bt(r.barEnd) && (u = 0), + u += d); + const g = U(s) || l ? u : s; + let p = e.getPixelForValue(g); + if (h = this.chart.getDataVisibility(t) ? e.getPixelForValue(u + f) : p, + c = h - p, + Math.abs(c) < n) { + c = function(t, e, i) { + return 0 !== t ? Bt(t) : (e.isHorizontal() ? 1 : -1) * (e.min >= i ? 1 : -1) + }(c, e, o) * n, + d === o && (p -= c / 2); + const t = e.getPixelForDecimal(0) + , i = e.getPixelForDecimal(1) + , s = Math.min(t, i) + , a = Math.max(t, i); + p = Math.max(Math.min(p, a), s), + h = p + c + } + if (p === e.getPixelForValue(o)) { + const t = Bt(c) * e.getLineWidthForValue(o) / 2; + p += t, + c -= t + } + return { + size: c, + base: p, + head: h, + center: h + c / 2 + } + } + _calculateBarIndexPixels(t, e) { + const i = e.scale + , s = this.options + , n = s.skipNull + , o = Z(s.maxBarThickness, 1 / 0); + let a, r; + if (e.grouped) { + const i = n ? this._getStackCount(t) : e.stackCount + , l = "flex" === s.barThickness ? function(t, e, i, s) { + const n = e.pixels + , o = n[t]; + let a = t > 0 ? n[t - 1] : null + , r = t < n.length - 1 ? n[t + 1] : null; + const l = i.categoryPercentage; + null === a && (a = o - (null === r ? e.end - e.start : r - o)), + null === r && (r = o + o - a); + const h = o - (o - Math.min(a, r)) / 2 * l; + return { + chunk: Math.abs(r - a) / 2 * l / s, + ratio: i.barPercentage, + start: h + } + }(t, e, s, i) : function(t, e, i, s) { + const n = i.barThickness; + let o, a; + return U(n) ? (o = e.min * i.categoryPercentage, + a = i.barPercentage) : (o = n * s, + a = 1), + { + chunk: o / s, + ratio: a, + start: e.pixels[t] - o / 2 + } + }(t, e, s, i) + , h = this._getStackIndex(this.index, this._cachedMeta.stack, n ? t : void 0); + a = l.start + l.chunk * h + l.chunk / 2, + r = Math.min(o, l.chunk * l.ratio) + } else + a = i.getPixelForValue(this.getParsed(t)[i.axis], t), + r = Math.min(o, e.min * e.ratio); + return { + base: a - r / 2, + head: a + r / 2, + center: a, + size: r + } + } + draw() { + const t = this._cachedMeta + , e = t.vScale + , i = t.data + , s = i.length; + let n = 0; + for (; n < s; ++n) + null !== this.getParsed(n)[e.axis] && i[n].draw(this._ctx) + } + } + Cn.id = "bar", + Cn.defaults = { + datasetElementType: !1, + dataElementType: "bar", + categoryPercentage: .8, + barPercentage: .9, + grouped: !0, + animations: { + numbers: { + type: "number", + properties: ["x", "y", "base", "width", "height"] + } + } + }, + Cn.overrides = { + scales: { + _index_: { + type: "category", + offset: !0, + grid: { + offset: !0 + } + }, + _value_: { + type: "linear", + beginAtZero: !0 + } + } + }; + class On extends Os { + initialize() { + this.enableOptionSharing = !0, + super.initialize() + } + parsePrimitiveData(t, e, i, s) { + const n = super.parsePrimitiveData(t, e, i, s); + for (let t = 0; t < n.length; t++) + n[t]._custom = this.resolveDataElementOptions(t + i).radius; + return n + } + parseArrayData(t, e, i, s) { + const n = super.parseArrayData(t, e, i, s); + for (let t = 0; t < n.length; t++) { + const s = e[i + t]; + n[t]._custom = Z(s[2], this.resolveDataElementOptions(t + i).radius) + } + return n + } + parseObjectData(t, e, i, s) { + const n = super.parseObjectData(t, e, i, s); + for (let t = 0; t < n.length; t++) { + const s = e[i + t]; + n[t]._custom = Z(s && s.r && +s.r, this.resolveDataElementOptions(t + i).radius) + } + return n + } + getMaxOverflow() { + const t = this._cachedMeta.data; + let e = 0; + for (let i = t.length - 1; i >= 0; --i) + e = Math.max(e, t[i].size(this.resolveDataElementOptions(i)) / 2); + return e > 0 && e + } + getLabelAndValue(t) { + const e = this._cachedMeta + , {xScale: i, yScale: s} = e + , n = this.getParsed(t) + , o = i.getLabelForValue(n.x) + , a = s.getLabelForValue(n.y) + , r = n._custom; + return { + label: e.label, + value: "(" + o + ", " + a + (r ? ", " + r : "") + ")" + } + } + update(t) { + const e = this._cachedMeta.data; + this.updateElements(e, 0, e.length, t) + } + updateElements(t, e, i, s) { + const n = "reset" === s + , {iScale: o, vScale: a} = this._cachedMeta + , {sharedOptions: r, includeOptions: l} = this._getSharedOptions(e, s) + , h = o.axis + , c = a.axis; + for (let d = e; d < e + i; d++) { + const e = t[d] + , i = !n && this.getParsed(d) + , u = {} + , f = u[h] = n ? o.getPixelForDecimal(.5) : o.getPixelForValue(i[h]) + , g = u[c] = n ? a.getBasePixel() : a.getPixelForValue(i[c]); + u.skip = isNaN(f) || isNaN(g), + l && (u.options = r || this.resolveDataElementOptions(d, e.active ? "active" : s), + n && (u.options.radius = 0)), + this.updateElement(e, d, u, s) + } + } + resolveDataElementOptions(t, e) { + const i = this.getParsed(t); + let s = super.resolveDataElementOptions(t, e); + s.$shared && (s = Object.assign({}, s, { + $shared: !1 + })); + const n = s.radius; + return "active" !== e && (s.radius = 0), + s.radius += Z(i && i._custom, n), + s + } + } + On.id = "bubble", + On.defaults = { + datasetElementType: !1, + dataElementType: "point", + animations: { + numbers: { + type: "number", + properties: ["x", "y", "borderWidth", "radius"] + } + } + }, + On.overrides = { + scales: { + x: { + type: "linear" + }, + y: { + type: "linear" + } + }, + plugins: { + tooltip: { + callbacks: { + title: ()=>"" + } + } + } + }; + class An extends Os { + constructor(t, e) { + super(t, e), + this.enableOptionSharing = !0, + this.innerRadius = void 0, + this.outerRadius = void 0, + this.offsetX = void 0, + this.offsetY = void 0 + } + linkScales() {} + parse(t, e) { + const i = this.getDataset().data + , s = this._cachedMeta; + if (!1 === this._parsing) + s._parsed = i; + else { + let n, o, a = t=>+i[t]; + if (q(i[t])) { + const {key: t="value"} = this._parsing; + a = e=>+ct(i[e], t) + } + for (n = t, + o = t + e; n < o; ++n) + s._parsed[n] = a(n) + } + } + _getRotation() { + return Yt(this.options.rotation - 90) + } + _getCircumference() { + return Yt(this.options.circumference) + } + _getRotationExtents() { + let t = At + , e = -At; + for (let i = 0; i < this.chart.data.datasets.length; ++i) + if (this.chart.isDatasetVisible(i)) { + const s = this.chart.getDatasetMeta(i).controller + , n = s._getRotation() + , o = s._getCircumference(); + t = Math.min(t, n), + e = Math.max(e, n + o) + } + return { + rotation: t, + circumference: e - t + } + } + update(t) { + const e = this.chart + , {chartArea: i} = e + , s = this._cachedMeta + , n = s.data + , o = this.getMaxBorderWidth() + this.getMaxOffset(n) + this.options.spacing + , a = Math.max((Math.min(i.width, i.height) - o) / 2, 0) + , r = Math.min(J(this.options.cutout, a), 1) + , l = this._getRingWeight(this.index) + , {circumference: h, rotation: c} = this._getRotationExtents() + , {ratioX: d, ratioY: u, offsetX: f, offsetY: g} = function(t, e, i) { + let s = 1 + , n = 1 + , o = 0 + , a = 0; + if (e < At) { + const r = t + , l = r + e + , h = Math.cos(r) + , c = Math.sin(r) + , d = Math.cos(l) + , u = Math.sin(l) + , f = (t,e,s)=>Jt(t, r, l, !0) ? 1 : Math.max(e, e * i, s, s * i) + , g = (t,e,s)=>Jt(t, r, l, !0) ? -1 : Math.min(e, e * i, s, s * i) + , p = f(0, h, d) + , m = f(Et, c, u) + , b = g(Ot, h, d) + , x = g(Ot + Et, c, u); + s = (p - b) / 2, + n = (m - x) / 2, + o = -(p + b) / 2, + a = -(m + x) / 2 + } + return { + ratioX: s, + ratioY: n, + offsetX: o, + offsetY: a + } + }(c, h, r) + , p = (i.width - o) / d + , m = (i.height - o) / u + , b = Math.max(Math.min(p, m) / 2, 0) + , x = Q(this.options.radius, b) + , _ = (x - Math.max(x * r, 0)) / this._getVisibleDatasetWeightTotal(); + this.offsetX = f * x, + this.offsetY = g * x, + s.total = this.calculateTotal(), + this.outerRadius = x - _ * this._getRingWeightOffset(this.index), + this.innerRadius = Math.max(this.outerRadius - _ * l, 0), + this.updateElements(n, 0, n.length, t) + } + _circumference(t, e) { + const i = this.options + , s = this._cachedMeta + , n = this._getCircumference(); + return e && i.animation.animateRotate || !this.chart.getDataVisibility(t) || null === s._parsed[t] || s.data[t].hidden ? 0 : this.calculateCircumference(s._parsed[t] * n / At) + } + updateElements(t, e, i, s) { + const n = "reset" === s + , o = this.chart + , a = o.chartArea + , r = o.options.animation + , l = (a.left + a.right) / 2 + , h = (a.top + a.bottom) / 2 + , c = n && r.animateScale + , d = c ? 0 : this.innerRadius + , u = c ? 0 : this.outerRadius + , {sharedOptions: f, includeOptions: g} = this._getSharedOptions(e, s); + let p, m = this._getRotation(); + for (p = 0; p < e; ++p) + m += this._circumference(p, n); + for (p = e; p < e + i; ++p) { + const e = this._circumference(p, n) + , i = t[p] + , o = { + x: l + this.offsetX, + y: h + this.offsetY, + startAngle: m, + endAngle: m + e, + circumference: e, + outerRadius: u, + innerRadius: d + }; + g && (o.options = f || this.resolveDataElementOptions(p, i.active ? "active" : s)), + m += e, + this.updateElement(i, p, o, s) + } + } + calculateTotal() { + const t = this._cachedMeta + , e = t.data; + let i, s = 0; + for (i = 0; i < e.length; i++) { + const n = t._parsed[i]; + null === n || isNaN(n) || !this.chart.getDataVisibility(i) || e[i].hidden || (s += Math.abs(n)) + } + return s + } + calculateCircumference(t) { + const e = this._cachedMeta.total; + return e > 0 && !isNaN(t) ? At * (Math.abs(t) / e) : 0 + } + getLabelAndValue(t) { + const e = this._cachedMeta + , i = this.chart + , s = i.data.labels || [] + , n = oi(e._parsed[t], i.options.locale); + return { + label: s[t] || "", + value: n + } + } + getMaxBorderWidth(t) { + let e = 0; + const i = this.chart; + let s, n, o, a, r; + if (!t) + for (s = 0, + n = i.data.datasets.length; s < n; ++s) + if (i.isDatasetVisible(s)) { + o = i.getDatasetMeta(s), + t = o.data, + a = o.controller; + break + } + if (!t) + return 0; + for (s = 0, + n = t.length; s < n; ++s) + r = a.resolveDataElementOptions(s), + "inner" !== r.borderAlign && (e = Math.max(e, r.borderWidth || 0, r.hoverBorderWidth || 0)); + return e + } + getMaxOffset(t) { + let e = 0; + for (let i = 0, s = t.length; i < s; ++i) { + const t = this.resolveDataElementOptions(i); + e = Math.max(e, t.offset || 0, t.hoverOffset || 0) + } + return e + } + _getRingWeightOffset(t) { + let e = 0; + for (let i = 0; i < t; ++i) + this.chart.isDatasetVisible(i) && (e += this._getRingWeight(i)); + return e + } + _getRingWeight(t) { + return Math.max(Z(this.chart.data.datasets[t].weight, 1), 0) + } + _getVisibleDatasetWeightTotal() { + return this._getRingWeightOffset(this.chart.data.datasets.length) || 1 + } + } + An.id = "doughnut", + An.defaults = { + datasetElementType: !1, + dataElementType: "arc", + animation: { + animateRotate: !0, + animateScale: !1 + }, + animations: { + numbers: { + type: "number", + properties: ["circumference", "endAngle", "innerRadius", "outerRadius", "startAngle", "x", "y", "offset", "borderWidth", "spacing"] + } + }, + cutout: "50%", + rotation: 0, + circumference: 360, + radius: "100%", + spacing: 0, + indexAxis: "r" + }, + An.descriptors = { + _scriptable: t=>"spacing" !== t, + _indexable: t=>"spacing" !== t + }, + An.overrides = { + aspectRatio: 1, + plugins: { + legend: { + labels: { + generateLabels(t) { + const e = t.data; + if (e.labels.length && e.datasets.length) { + const {labels: {pointStyle: i}} = t.legend.options; + return e.labels.map(((e,s)=>{ + const n = t.getDatasetMeta(0).controller.getStyle(s); + return { + text: e, + fillStyle: n.backgroundColor, + strokeStyle: n.borderColor, + lineWidth: n.borderWidth, + pointStyle: i, + hidden: !t.getDataVisibility(s), + index: s + } + } + )) + } + return [] + } + }, + onClick(t, e, i) { + i.chart.toggleDataVisibility(e.index), + i.chart.update() + } + }, + tooltip: { + callbacks: { + title: ()=>"", + label(t) { + let e = t.label; + const i = ": " + t.formattedValue; + return X(e) ? (e = e.slice(), + e[0] += i) : e += i, + e + } + } + } + } + }; + class Tn extends Os { + initialize() { + this.enableOptionSharing = !0, + this.supportsDecimation = !0, + super.initialize() + } + update(t) { + const e = this._cachedMeta + , {dataset: i, data: s=[], _dataset: n} = e + , o = this.chart._animationsDisabled; + let {start: a, count: r} = function(t, e, i) { + const s = e.length; + let n = 0 + , o = s; + if (t._sorted) { + const {iScale: a, _parsed: r} = t + , l = a.axis + , {min: h, max: c, minDefined: d, maxDefined: u} = a.getUserBounds(); + d && (n = Qt(Math.min(wt(r, a.axis, h).lo, i ? s : wt(e, l, a.getPixelForValue(h)).lo), 0, s - 1)), + o = u ? Qt(Math.max(wt(r, a.axis, c).hi + 1, i ? 0 : wt(e, l, a.getPixelForValue(c)).hi + 1), n, s) - n : s - n + } + return { + start: n, + count: o + } + }(e, s, o); + this._drawStart = a, + this._drawCount = r, + function(t) { + const {xScale: e, yScale: i, _scaleRanges: s} = t + , n = { + xmin: e.min, + xmax: e.max, + ymin: i.min, + ymax: i.max + }; + if (!s) + return t._scaleRanges = n, + !0; + const o = s.xmin !== e.min || s.xmax !== e.max || s.ymin !== i.min || s.ymax !== i.max; + return Object.assign(s, n), + o + }(e) && (a = 0, + r = s.length), + i._chart = this.chart, + i._datasetIndex = this.index, + i._decimated = !!n._decimated, + i.points = s; + const l = this.resolveDatasetElementOptions(t); + this.options.showLine || (l.borderWidth = 0), + l.segment = this.options.segment, + this.updateElement(i, void 0, { + animated: !o, + options: l + }, t), + this.updateElements(s, a, r, t) + } + updateElements(t, e, i, s) { + const n = "reset" === s + , {iScale: o, vScale: a, _stacked: r, _dataset: l} = this._cachedMeta + , {sharedOptions: h, includeOptions: c} = this._getSharedOptions(e, s) + , d = o.axis + , u = a.axis + , {spanGaps: f, segment: g} = this.options + , p = Nt(f) ? f : Number.POSITIVE_INFINITY + , m = this.chart._animationsDisabled || n || "none" === s; + let b = e > 0 && this.getParsed(e - 1); + for (let f = e; f < e + i; ++f) { + const e = t[f] + , i = this.getParsed(f) + , x = m ? e : {} + , _ = U(i[u]) + , y = x[d] = o.getPixelForValue(i[d], f) + , v = x[u] = n || _ ? a.getBasePixel() : a.getPixelForValue(r ? this.applyStack(a, i, r) : i[u], f); + x.skip = isNaN(y) || isNaN(v) || _, + x.stop = f > 0 && Math.abs(i[d] - b[d]) > p, + g && (x.parsed = i, + x.raw = l.data[f]), + c && (x.options = h || this.resolveDataElementOptions(f, e.active ? "active" : s)), + m || this.updateElement(e, f, x, s), + b = i + } + } + getMaxOverflow() { + const t = this._cachedMeta + , e = t.dataset + , i = e.options && e.options.borderWidth || 0 + , s = t.data || []; + if (!s.length) + return i; + const n = s[0].size(this.resolveDataElementOptions(0)) + , o = s[s.length - 1].size(this.resolveDataElementOptions(s.length - 1)); + return Math.max(i, n, o) / 2 + } + draw() { + const t = this._cachedMeta; + t.dataset.updateControlPoints(this.chart.chartArea, t.iScale.axis), + super.draw() + } + } + Tn.id = "line", + Tn.defaults = { + datasetElementType: "line", + dataElementType: "point", + showLine: !0, + spanGaps: !1 + }, + Tn.overrides = { + scales: { + _index_: { + type: "category" + }, + _value_: { + type: "linear" + } + } + }; + class Ln extends Os { + constructor(t, e) { + super(t, e), + this.innerRadius = void 0, + this.outerRadius = void 0 + } + getLabelAndValue(t) { + const e = this._cachedMeta + , i = this.chart + , s = i.data.labels || [] + , n = oi(e._parsed[t].r, i.options.locale); + return { + label: s[t] || "", + value: n + } + } + parseObjectData(t, e, i, s) { + return He.bind(this)(t, e, i, s) + } + update(t) { + const e = this._cachedMeta.data; + this._updateRadius(), + this.updateElements(e, 0, e.length, t) + } + getMinMax() { + const t = this._cachedMeta + , e = { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY + }; + return t.data.forEach(((t,i)=>{ + const s = this.getParsed(i).r; + !isNaN(s) && this.chart.getDataVisibility(i) && (s < e.min && (e.min = s), + s > e.max && (e.max = s)) + } + )), + e + } + _updateRadius() { + const t = this.chart + , e = t.chartArea + , i = t.options + , s = Math.min(e.right - e.left, e.bottom - e.top) + , n = Math.max(s / 2, 0) + , o = (n - Math.max(i.cutoutPercentage ? n / 100 * i.cutoutPercentage : 1, 0)) / t.getVisibleDatasetCount(); + this.outerRadius = n - o * this.index, + this.innerRadius = this.outerRadius - o + } + updateElements(t, e, i, s) { + const n = "reset" === s + , o = this.chart + , a = o.options.animation + , r = this._cachedMeta.rScale + , l = r.xCenter + , h = r.yCenter + , c = r.getIndexAngle(0) - .5 * Ot; + let d, u = c; + const f = 360 / this.countVisibleElements(); + for (d = 0; d < e; ++d) + u += this._computeAngle(d, s, f); + for (d = e; d < e + i; d++) { + const e = t[d]; + let i = u + , g = u + this._computeAngle(d, s, f) + , p = o.getDataVisibility(d) ? r.getDistanceFromCenterForValue(this.getParsed(d).r) : 0; + u = g, + n && (a.animateScale && (p = 0), + a.animateRotate && (i = g = c)); + const m = { + x: l, + y: h, + innerRadius: 0, + outerRadius: p, + startAngle: i, + endAngle: g, + options: this.resolveDataElementOptions(d, e.active ? "active" : s) + }; + this.updateElement(e, d, m, s) + } + } + countVisibleElements() { + const t = this._cachedMeta; + let e = 0; + return t.data.forEach(((t,i)=>{ + !isNaN(this.getParsed(i).r) && this.chart.getDataVisibility(i) && e++ + } + )), + e + } + _computeAngle(t, e, i) { + return this.chart.getDataVisibility(t) ? Yt(this.resolveDataElementOptions(t, e).angle || i) : 0 + } + } + Ln.id = "polarArea", + Ln.defaults = { + dataElementType: "arc", + animation: { + animateRotate: !0, + animateScale: !0 + }, + animations: { + numbers: { + type: "number", + properties: ["x", "y", "startAngle", "endAngle", "innerRadius", "outerRadius"] + } + }, + indexAxis: "r", + startAngle: 0 + }, + Ln.overrides = { + aspectRatio: 1, + plugins: { + legend: { + labels: { + generateLabels(t) { + const e = t.data; + if (e.labels.length && e.datasets.length) { + const {labels: {pointStyle: i}} = t.legend.options; + return e.labels.map(((e,s)=>{ + const n = t.getDatasetMeta(0).controller.getStyle(s); + return { + text: e, + fillStyle: n.backgroundColor, + strokeStyle: n.borderColor, + lineWidth: n.borderWidth, + pointStyle: i, + hidden: !t.getDataVisibility(s), + index: s + } + } + )) + } + return [] + } + }, + onClick(t, e, i) { + i.chart.toggleDataVisibility(e.index), + i.chart.update() + } + }, + tooltip: { + callbacks: { + title: ()=>"", + label: t=>t.chart.data.labels[t.dataIndex] + ": " + t.formattedValue + } + } + }, + scales: { + r: { + type: "radialLinear", + angleLines: { + display: !1 + }, + beginAtZero: !0, + grid: { + circular: !0 + }, + pointLabels: { + display: !1 + }, + startAngle: 0 + } + } + }; + class Rn extends An { + } + Rn.id = "pie", + Rn.defaults = { + cutout: 0, + rotation: 0, + circumference: 360, + radius: "100%" + }; + class En extends Os { + getLabelAndValue(t) { + const e = this._cachedMeta.vScale + , i = this.getParsed(t); + return { + label: e.getLabels()[t], + value: "" + e.getLabelForValue(i[e.axis]) + } + } + parseObjectData(t, e, i, s) { + return He.bind(this)(t, e, i, s) + } + update(t) { + const e = this._cachedMeta + , i = e.dataset + , s = e.data || [] + , n = e.iScale.getLabels(); + if (i.points = s, + "resize" !== t) { + const e = this.resolveDatasetElementOptions(t); + this.options.showLine || (e.borderWidth = 0); + const o = { + _loop: !0, + _fullLoop: n.length === s.length, + options: e + }; + this.updateElement(i, void 0, o, t) + } + this.updateElements(s, 0, s.length, t) + } + updateElements(t, e, i, s) { + const n = this._cachedMeta.rScale + , o = "reset" === s; + for (let a = e; a < e + i; a++) { + const e = t[a] + , i = this.resolveDataElementOptions(a, e.active ? "active" : s) + , r = n.getPointPositionForValue(a, this.getParsed(a).r) + , l = o ? n.xCenter : r.x + , h = o ? n.yCenter : r.y + , c = { + x: l, + y: h, + angle: r.angle, + skip: isNaN(l) || isNaN(h), + options: i + }; + this.updateElement(e, a, c, s) + } + } + } + En.id = "radar", + En.defaults = { + datasetElementType: "line", + dataElementType: "point", + indexAxis: "r", + showLine: !0, + elements: { + line: { + fill: "start" + } + } + }, + En.overrides = { + aspectRatio: 1, + scales: { + r: { + type: "radialLinear" + } + } + }; + class In extends Tn { + } + In.id = "scatter", + In.defaults = { + showLine: !1, + fill: !1 + }, + In.overrides = { + interaction: { + mode: "point" + }, + plugins: { + tooltip: { + callbacks: { + title: ()=>"", + label: t=>"(" + t.label + ", " + t.formattedValue + ")" + } + } + }, + scales: { + x: { + type: "linear" + }, + y: { + type: "linear" + } + } + }; + var zn = Object.freeze({ + __proto__: null, + BarController: Cn, + BubbleController: On, + DoughnutController: An, + LineController: Tn, + PolarAreaController: Ln, + PieController: Rn, + RadarController: En, + ScatterController: In + }); + function Fn(t, e, i) { + const {startAngle: s, pixelMargin: n, x: o, y: a, outerRadius: r, innerRadius: l} = e; + let h = n / r; + t.beginPath(), + t.arc(o, a, r, s - h, i + h), + l > n ? (h = n / l, + t.arc(o, a, l, i + h, s - h, !0)) : t.arc(o, a, n, i + Et, s - Et), + t.closePath(), + t.clip() + } + function Bn(t, e, i, s) { + const n = hi(t.options.borderRadius, ["outerStart", "outerEnd", "innerStart", "innerEnd"]); + const o = (i - e) / 2 + , a = Math.min(o, s * e / 2) + , r = t=>{ + const e = (i - Math.min(o, t)) * s / 2; + return Qt(t, 0, Math.min(o, e)) + } + ; + return { + outerStart: r(n.outerStart), + outerEnd: r(n.outerEnd), + innerStart: Qt(n.innerStart, 0, a), + innerEnd: Qt(n.innerEnd, 0, a) + } + } + function Vn(t, e, i, s) { + return { + x: i + t * Math.cos(e), + y: s + t * Math.sin(e) + } + } + function Wn(t, e, i, s, n) { + const {x: o, y: a, startAngle: r, pixelMargin: l, innerRadius: h} = e + , c = Math.max(e.outerRadius + s + i - l, 0) + , d = h > 0 ? h + s + i + l : 0; + let u = 0; + const f = n - r; + if (s) { + const t = ((h > 0 ? h - s : 0) + (c > 0 ? c - s : 0)) / 2; + u = (f - (0 !== t ? f * t / (t + s) : f)) / 2 + } + const g = (f - Math.max(.001, f * c - i / Ot) / c) / 2 + , p = r + g + u + , m = n - g - u + , {outerStart: b, outerEnd: x, innerStart: _, innerEnd: y} = Bn(e, d, c, m - p) + , v = c - b + , w = c - x + , M = p + b / v + , k = m - x / w + , S = d + _ + , P = d + y + , D = p + _ / S + , C = m - y / P; + if (t.beginPath(), + t.arc(o, a, c, M, k), + x > 0) { + const e = Vn(w, k, o, a); + t.arc(e.x, e.y, x, k, m + Et) + } + const O = Vn(P, m, o, a); + if (t.lineTo(O.x, O.y), + y > 0) { + const e = Vn(P, C, o, a); + t.arc(e.x, e.y, y, m + Et, C + Math.PI) + } + if (t.arc(o, a, d, m - y / d, p + _ / d, !0), + _ > 0) { + const e = Vn(S, D, o, a); + t.arc(e.x, e.y, _, D + Math.PI, p - Et) + } + const A = Vn(v, p, o, a); + if (t.lineTo(A.x, A.y), + b > 0) { + const e = Vn(v, M, o, a); + t.arc(e.x, e.y, b, p - Et, M) + } + t.closePath() + } + function Nn(t, e, i, s, n) { + const {options: o} = e + , {borderWidth: a, borderJoinStyle: r} = o + , l = "inner" === o.borderAlign; + a && (l ? (t.lineWidth = 2 * a, + t.lineJoin = r || "round") : (t.lineWidth = a, + t.lineJoin = r || "bevel"), + e.fullCircles && function(t, e, i) { + const {x: s, y: n, startAngle: o, pixelMargin: a, fullCircles: r} = e + , l = Math.max(e.outerRadius - a, 0) + , h = e.innerRadius + a; + let c; + for (i && Fn(t, e, o + At), + t.beginPath(), + t.arc(s, n, h, o + At, o, !0), + c = 0; c < r; ++c) + t.stroke(); + for (t.beginPath(), + t.arc(s, n, l, o, o + At), + c = 0; c < r; ++c) + t.stroke() + }(t, e, l), + l && Fn(t, e, n), + Wn(t, e, i, s, n), + t.stroke()) + } + class jn extends As { + constructor(t) { + super(), + this.options = void 0, + this.circumference = void 0, + this.startAngle = void 0, + this.endAngle = void 0, + this.innerRadius = void 0, + this.outerRadius = void 0, + this.pixelMargin = 0, + this.fullCircles = 0, + t && Object.assign(this, t) + } + inRange(t, e, i) { + const s = this.getProps(["x", "y"], i) + , {angle: n, distance: o} = qt(s, { + x: t, + y: e + }) + , {startAngle: a, endAngle: r, innerRadius: l, outerRadius: h, circumference: c} = this.getProps(["startAngle", "endAngle", "innerRadius", "outerRadius", "circumference"], i) + , d = this.options.spacing / 2 + , u = Z(c, r - a) >= At || Jt(n, a, r) + , f = ee(o, l + d, h + d); + return u && f + } + getCenterPoint(t) { + const {x: e, y: i, startAngle: s, endAngle: n, innerRadius: o, outerRadius: a} = this.getProps(["x", "y", "startAngle", "endAngle", "innerRadius", "outerRadius", "circumference"], t) + , {offset: r, spacing: l} = this.options + , h = (s + n) / 2 + , c = (o + a + l + r) / 2; + return { + x: e + Math.cos(h) * c, + y: i + Math.sin(h) * c + } + } + tooltipPosition(t) { + return this.getCenterPoint(t) + } + draw(t) { + const {options: e, circumference: i} = this + , s = (e.offset || 0) / 2 + , n = (e.spacing || 0) / 2; + if (this.pixelMargin = "inner" === e.borderAlign ? .33 : 0, + this.fullCircles = i > At ? Math.floor(i / At) : 0, + 0 === i || this.innerRadius < 0 || this.outerRadius < 0) + return; + t.save(); + let o = 0; + if (s) { + o = s / 2; + const e = (this.startAngle + this.endAngle) / 2; + t.translate(Math.cos(e) * o, Math.sin(e) * o), + this.circumference >= Ot && (o = s) + } + t.fillStyle = e.backgroundColor, + t.strokeStyle = e.borderColor; + const a = function(t, e, i, s) { + const {fullCircles: n, startAngle: o, circumference: a} = e; + let r = e.endAngle; + if (n) { + Wn(t, e, i, s, o + At); + for (let e = 0; e < n; ++e) + t.fill(); + isNaN(a) || (r = o + a % At, + a % At == 0 && (r += At)) + } + return Wn(t, e, i, s, r), + t.fill(), + r + }(t, this, o, n); + Nn(t, this, o, n, a), + t.restore() + } + } + function Hn(t, e, i=e) { + t.lineCap = Z(i.borderCapStyle, e.borderCapStyle), + t.setLineDash(Z(i.borderDash, e.borderDash)), + t.lineDashOffset = Z(i.borderDashOffset, e.borderDashOffset), + t.lineJoin = Z(i.borderJoinStyle, e.borderJoinStyle), + t.lineWidth = Z(i.borderWidth, e.borderWidth), + t.strokeStyle = Z(i.borderColor, e.borderColor) + } + function $n(t, e, i) { + t.lineTo(i.x, i.y) + } + function Yn(t, e, i={}) { + const s = t.length + , {start: n=0, end: o=s - 1} = i + , {start: a, end: r} = e + , l = Math.max(n, a) + , h = Math.min(o, r) + , c = n < a && o < a || n > r && o > r; + return { + count: s, + start: l, + loop: e.loop, + ilen: h < l && !c ? s + h - l : h - l + } + } + function Un(t, e, i, s) { + const {points: n, options: o} = e + , {count: a, start: r, loop: l, ilen: h} = Yn(n, i, s) + , c = function(t) { + return t.stepped ? Se : t.tension || "monotone" === t.cubicInterpolationMode ? Pe : $n + }(o); + let d, u, f, {move: g=!0, reverse: p} = s || {}; + for (d = 0; d <= h; ++d) + u = n[(r + (p ? h - d : d)) % a], + u.skip || (g ? (t.moveTo(u.x, u.y), + g = !1) : c(t, f, u, p, o.stepped), + f = u); + return l && (u = n[(r + (p ? h : 0)) % a], + c(t, f, u, p, o.stepped)), + !!l + } + function Xn(t, e, i, s) { + const n = e.points + , {count: o, start: a, ilen: r} = Yn(n, i, s) + , {move: l=!0, reverse: h} = s || {}; + let c, d, u, f, g, p, m = 0, b = 0; + const x = t=>(a + (h ? r - t : t)) % o + , _ = ()=>{ + f !== g && (t.lineTo(m, g), + t.lineTo(m, f), + t.lineTo(m, p)) + } + ; + for (l && (d = n[x(0)], + t.moveTo(d.x, d.y)), + c = 0; c <= r; ++c) { + if (d = n[x(c)], + d.skip) + continue; + const e = d.x + , i = d.y + , s = 0 | e; + s === u ? (i < f ? f = i : i > g && (g = i), + m = (b * m + e) / ++b) : (_(), + t.lineTo(e, i), + u = s, + b = 0, + f = g = i), + p = i + } + _() + } + function qn(t) { + const e = t.options + , i = e.borderDash && e.borderDash.length; + return !(t._decimated || t._loop || e.tension || "monotone" === e.cubicInterpolationMode || e.stepped || i) ? Xn : Un + } + jn.id = "arc", + jn.defaults = { + borderAlign: "center", + borderColor: "#fff", + borderJoinStyle: void 0, + borderRadius: 0, + borderWidth: 2, + offset: 0, + spacing: 0, + angle: void 0 + }, + jn.defaultRoutes = { + backgroundColor: "backgroundColor" + }; + const Kn = "function" == typeof Path2D; + function Gn(t, e, i, s) { + Kn && !e.options.segment ? function(t, e, i, s) { + let n = e._path; + n || (n = e._path = new Path2D, + e.path(n, i, s) && n.closePath()), + Hn(t, e.options), + t.stroke(n) + }(t, e, i, s) : function(t, e, i, s) { + const {segments: n, options: o} = e + , a = qn(e); + for (const r of n) + Hn(t, o, r.style), + t.beginPath(), + a(t, e, r, { + start: i, + end: i + s - 1 + }) && t.closePath(), + t.stroke() + }(t, e, i, s) + } + class Zn extends As { + constructor(t) { + super(), + this.animated = !0, + this.options = void 0, + this._chart = void 0, + this._loop = void 0, + this._fullLoop = void 0, + this._path = void 0, + this._points = void 0, + this._segments = void 0, + this._decimated = !1, + this._pointsUpdated = !1, + this._datasetIndex = void 0, + t && Object.assign(this, t) + } + updateControlPoints(t, e) { + const i = this.options; + if ((i.tension || "monotone" === i.cubicInterpolationMode) && !i.stepped && !this._pointsUpdated) { + const s = i.spanGaps ? this._loop : this._fullLoop; + Ge(this._points, i, t, s, e), + this._pointsUpdated = !0 + } + } + set points(t) { + this._points = t, + delete this._segments, + delete this._path, + this._pointsUpdated = !1 + } + get points() { + return this._points + } + get segments() { + return this._segments || (this._segments = ki(this, this.options.segment)) + } + first() { + const t = this.segments + , e = this.points; + return t.length && e[t[0].start] + } + last() { + const t = this.segments + , e = this.points + , i = t.length; + return i && e[t[i - 1].end] + } + interpolate(t, e) { + const i = this.options + , s = t[e] + , n = this.points + , o = Mi(this, { + property: e, + start: s, + end: s + }); + if (!o.length) + return; + const a = [] + , r = function(t) { + return t.stepped ? ii : t.tension || "monotone" === t.cubicInterpolationMode ? si : ei + }(i); + let l, h; + for (l = 0, + h = o.length; l < h; ++l) { + const {start: h, end: c} = o[l] + , d = n[h] + , u = n[c]; + if (d === u) { + a.push(d); + continue + } + const f = r(d, u, Math.abs((s - d[e]) / (u[e] - d[e])), i.stepped); + f[e] = t[e], + a.push(f) + } + return 1 === a.length ? a[0] : a + } + pathSegment(t, e, i) { + return qn(this)(t, this, e, i) + } + path(t, e, i) { + const s = this.segments + , n = qn(this); + let o = this._loop; + e = e || 0, + i = i || this.points.length - e; + for (const a of s) + o &= n(t, this, a, { + start: e, + end: e + i - 1 + }); + return !!o + } + draw(t, e, i, s) { + const n = this.options || {}; + (this.points || []).length && n.borderWidth && (t.save(), + Gn(t, this, i, s), + t.restore()), + this.animated && (this._pointsUpdated = !1, + this._path = void 0) + } + } + function Jn(t, e, i, s) { + const n = t.options + , {[i]: o} = t.getProps([i], s); + return Math.abs(e - o) < n.radius + n.hitRadius + } + Zn.id = "line", + Zn.defaults = { + borderCapStyle: "butt", + borderDash: [], + borderDashOffset: 0, + borderJoinStyle: "miter", + borderWidth: 3, + capBezierPoints: !0, + cubicInterpolationMode: "default", + fill: !1, + spanGaps: !1, + stepped: !1, + tension: 0 + }, + Zn.defaultRoutes = { + backgroundColor: "backgroundColor", + borderColor: "borderColor" + }, + Zn.descriptors = { + _scriptable: !0, + _indexable: t=>"borderDash" !== t && "fill" !== t + }; + class Qn extends As { + constructor(t) { + super(), + this.options = void 0, + this.parsed = void 0, + this.skip = void 0, + this.stop = void 0, + t && Object.assign(this, t) + } + inRange(t, e, i) { + const s = this.options + , {x: n, y: o} = this.getProps(["x", "y"], i); + return Math.pow(t - n, 2) + Math.pow(e - o, 2) < Math.pow(s.hitRadius + s.radius, 2) + } + inXRange(t, e) { + return Jn(this, t, "x", e) + } + inYRange(t, e) { + return Jn(this, t, "y", e) + } + getCenterPoint(t) { + const {x: e, y: i} = this.getProps(["x", "y"], t); + return { + x: e, + y: i + } + } + size(t) { + let e = (t = t || this.options || {}).radius || 0; + e = Math.max(e, e && t.hoverRadius || 0); + return 2 * (e + (e && t.borderWidth || 0)) + } + draw(t, e) { + const i = this.options; + this.skip || i.radius < .1 || !we(this, e, this.size(i) / 2) || (t.strokeStyle = i.borderColor, + t.lineWidth = i.borderWidth, + t.fillStyle = i.backgroundColor, + ye(t, i, this.x, this.y)) + } + getRange() { + const t = this.options || {}; + return t.radius + t.hitRadius + } + } + function to(t, e) { + const {x: i, y: s, base: n, width: o, height: a} = t.getProps(["x", "y", "base", "width", "height"], e); + let r, l, h, c, d; + return t.horizontal ? (d = a / 2, + r = Math.min(i, n), + l = Math.max(i, n), + h = s - d, + c = s + d) : (d = o / 2, + r = i - d, + l = i + d, + h = Math.min(s, n), + c = Math.max(s, n)), + { + left: r, + top: h, + right: l, + bottom: c + } + } + function eo(t, e, i, s) { + return t ? 0 : Qt(e, i, s) + } + function io(t) { + const e = to(t) + , i = e.right - e.left + , s = e.bottom - e.top + , n = function(t, e, i) { + const s = t.options.borderWidth + , n = t.borderSkipped + , o = ci(s); + return { + t: eo(n.top, o.top, 0, i), + r: eo(n.right, o.right, 0, e), + b: eo(n.bottom, o.bottom, 0, i), + l: eo(n.left, o.left, 0, e) + } + }(t, i / 2, s / 2) + , o = function(t, e, i) { + const {enableBorderRadius: s} = t.getProps(["enableBorderRadius"]) + , n = t.options.borderRadius + , o = di(n) + , a = Math.min(e, i) + , r = t.borderSkipped + , l = s || q(n); + return { + topLeft: eo(!l || r.top || r.left, o.topLeft, 0, a), + topRight: eo(!l || r.top || r.right, o.topRight, 0, a), + bottomLeft: eo(!l || r.bottom || r.left, o.bottomLeft, 0, a), + bottomRight: eo(!l || r.bottom || r.right, o.bottomRight, 0, a) + } + }(t, i / 2, s / 2); + return { + outer: { + x: e.left, + y: e.top, + w: i, + h: s, + radius: o + }, + inner: { + x: e.left + n.l, + y: e.top + n.t, + w: i - n.l - n.r, + h: s - n.t - n.b, + radius: { + topLeft: Math.max(0, o.topLeft - Math.max(n.t, n.l)), + topRight: Math.max(0, o.topRight - Math.max(n.t, n.r)), + bottomLeft: Math.max(0, o.bottomLeft - Math.max(n.b, n.l)), + bottomRight: Math.max(0, o.bottomRight - Math.max(n.b, n.r)) + } + } + } + } + function so(t, e, i, s) { + const n = null === e + , o = null === i + , a = t && !(n && o) && to(t, s); + return a && (n || ee(e, a.left, a.right)) && (o || ee(i, a.top, a.bottom)) + } + function no(t, e) { + t.rect(e.x, e.y, e.w, e.h) + } + function oo(t, e, i={}) { + const s = t.x !== i.x ? -e : 0 + , n = t.y !== i.y ? -e : 0 + , o = (t.x + t.w !== i.x + i.w ? e : 0) - s + , a = (t.y + t.h !== i.y + i.h ? e : 0) - n; + return { + x: t.x + s, + y: t.y + n, + w: t.w + o, + h: t.h + a, + radius: t.radius + } + } + Qn.id = "point", + Qn.defaults = { + borderWidth: 1, + hitRadius: 1, + hoverBorderWidth: 1, + hoverRadius: 4, + pointStyle: "circle", + radius: 3, + rotation: 0 + }, + Qn.defaultRoutes = { + backgroundColor: "backgroundColor", + borderColor: "borderColor" + }; + class ao extends As { + constructor(t) { + super(), + this.options = void 0, + this.horizontal = void 0, + this.base = void 0, + this.width = void 0, + this.height = void 0, + this.inflateAmount = void 0, + t && Object.assign(this, t) + } + draw(t) { + const {inflateAmount: e, options: {borderColor: i, backgroundColor: s}} = this + , {inner: n, outer: o} = io(this) + , a = (r = o.radius).topLeft || r.topRight || r.bottomLeft || r.bottomRight ? Oe : no; + var r; + t.save(), + o.w === n.w && o.h === n.h || (t.beginPath(), + a(t, oo(o, e, n)), + t.clip(), + a(t, oo(n, -e, o)), + t.fillStyle = i, + t.fill("evenodd")), + t.beginPath(), + a(t, oo(n, e)), + t.fillStyle = s, + t.fill(), + t.restore() + } + inRange(t, e, i) { + return so(this, t, e, i) + } + inXRange(t, e) { + return so(this, t, null, e) + } + inYRange(t, e) { + return so(this, null, t, e) + } + getCenterPoint(t) { + const {x: e, y: i, base: s, horizontal: n} = this.getProps(["x", "y", "base", "horizontal"], t); + return { + x: n ? (e + s) / 2 : e, + y: n ? i : (i + s) / 2 + } + } + getRange(t) { + return "x" === t ? this.width / 2 : this.height / 2 + } + } + ao.id = "bar", + ao.defaults = { + borderSkipped: "start", + borderWidth: 0, + borderRadius: 0, + inflateAmount: "auto", + pointStyle: void 0 + }, + ao.defaultRoutes = { + backgroundColor: "backgroundColor", + borderColor: "borderColor" + }; + var ro = Object.freeze({ + __proto__: null, + ArcElement: jn, + LineElement: Zn, + PointElement: Qn, + BarElement: ao + }); + function lo(t) { + if (t._decimated) { + const e = t._data; + delete t._decimated, + delete t._data, + Object.defineProperty(t, "data", { + value: e + }) + } + } + function ho(t) { + t.data.datasets.forEach((t=>{ + lo(t) + } + )) + } + var co = { + id: "decimation", + defaults: { + algorithm: "min-max", + enabled: !1 + }, + beforeElementsUpdate: (t,e,i)=>{ + if (!i.enabled) + return void ho(t); + const s = t.width; + t.data.datasets.forEach(((e,n)=>{ + const {_data: o, indexAxis: a} = e + , r = t.getDatasetMeta(n) + , l = o || e.data; + if ("y" === gi([a, t.options.indexAxis])) + return; + if (!r.controller.supportsDecimation) + return; + const h = t.scales[r.xAxisID]; + if ("linear" !== h.type && "time" !== h.type) + return; + if (t.options.parsing) + return; + let {start: c, count: d} = function(t, e) { + const i = e.length; + let s, n = 0; + const {iScale: o} = t + , {min: a, max: r, minDefined: l, maxDefined: h} = o.getUserBounds(); + return l && (n = Qt(wt(e, o.axis, a).lo, 0, i - 1)), + s = h ? Qt(wt(e, o.axis, r).hi + 1, n, i) - n : i - n, + { + start: n, + count: s + } + }(r, l); + if (d <= (i.threshold || 4 * s)) + return void lo(e); + let u; + switch (U(o) && (e._data = l, + delete e.data, + Object.defineProperty(e, "data", { + configurable: !0, + enumerable: !0, + get: function() { + return this._decimated + }, + set: function(t) { + this._data = t + } + })), + i.algorithm) { + case "lttb": + u = function(t, e, i, s, n) { + const o = n.samples || s; + if (o >= i) + return t.slice(e, e + i); + const a = [] + , r = (i - 2) / (o - 2); + let l = 0; + const h = e + i - 1; + let c, d, u, f, g, p = e; + for (a[l++] = t[p], + c = 0; c < o - 2; c++) { + let s, n = 0, o = 0; + const h = Math.floor((c + 1) * r) + 1 + e + , m = Math.min(Math.floor((c + 2) * r) + 1, i) + e + , b = m - h; + for (s = h; s < m; s++) + n += t[s].x, + o += t[s].y; + n /= b, + o /= b; + const x = Math.floor(c * r) + 1 + e + , _ = Math.min(Math.floor((c + 1) * r) + 1, i) + e + , {x: y, y: v} = t[p]; + for (u = f = -1, + s = x; s < _; s++) + f = .5 * Math.abs((y - n) * (t[s].y - v) - (y - t[s].x) * (o - v)), + f > u && (u = f, + d = t[s], + g = s); + a[l++] = d, + p = g + } + return a[l++] = t[h], + a + }(l, c, d, s, i); + break; + case "min-max": + u = function(t, e, i, s) { + let n, o, a, r, l, h, c, d, u, f, g = 0, p = 0; + const m = [] + , b = e + i - 1 + , x = t[e].x + , _ = t[b].x - x; + for (n = e; n < e + i; ++n) { + o = t[n], + a = (o.x - x) / _ * s, + r = o.y; + const e = 0 | a; + if (e === l) + r < u ? (u = r, + h = n) : r > f && (f = r, + c = n), + g = (p * g + o.x) / ++p; + else { + const i = n - 1; + if (!U(h) && !U(c)) { + const e = Math.min(h, c) + , s = Math.max(h, c); + e !== d && e !== i && m.push({ + ...t[e], + x: g + }), + s !== d && s !== i && m.push({ + ...t[s], + x: g + }) + } + n > 0 && i !== d && m.push(t[i]), + m.push(o), + l = e, + p = 0, + u = f = r, + h = c = d = n + } + } + return m + }(l, c, d, s); + break; + default: + throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`) + } + e._decimated = u + } + )) + } + , + destroy(t) { + ho(t) + } + }; + function uo(t, e, i, s) { + if (s) + return; + let n = e[t] + , o = i[t]; + return "angle" === t && (n = Zt(n), + o = Zt(o)), + { + property: t, + start: n, + end: o + } + } + function fo(t, e, i) { + for (; e > t; e--) { + const t = i[e]; + if (!isNaN(t.x) && !isNaN(t.y)) + break + } + return e + } + function go(t, e, i, s) { + return t && e ? s(t[i], e[i]) : t ? t[i] : e ? e[i] : 0 + } + function po(t, e) { + let i = [] + , s = !1; + return X(t) ? (s = !0, + i = t) : i = function(t, e) { + const {x: i=null, y: s=null} = t || {} + , n = e.points + , o = []; + return e.segments.forEach((({start: t, end: e})=>{ + e = fo(t, e, n); + const a = n[t] + , r = n[e]; + null !== s ? (o.push({ + x: a.x, + y: s + }), + o.push({ + x: r.x, + y: s + })) : null !== i && (o.push({ + x: i, + y: a.y + }), + o.push({ + x: i, + y: r.y + })) + } + )), + o + }(t, e), + i.length ? new Zn({ + points: i, + options: { + tension: 0 + }, + _loop: s, + _fullLoop: s + }) : null + } + function mo(t) { + return t && !1 !== t.fill + } + function bo(t, e, i) { + let s = t[e].fill; + const n = [e]; + let o; + if (!i) + return s; + for (; !1 !== s && -1 === n.indexOf(s); ) { + if (!K(s)) + return s; + if (o = t[s], + !o) + return !1; + if (o.visible) + return s; + n.push(s), + s = o.fill + } + return !1 + } + function xo(t, e, i) { + const s = function(t) { + const e = t.options + , i = e.fill; + let s = Z(i && i.target, i); + void 0 === s && (s = !!e.backgroundColor); + if (!1 === s || null === s) + return !1; + if (!0 === s) + return "origin"; + return s + }(t); + if (q(s)) + return !isNaN(s.value) && s; + let n = parseFloat(s); + return K(n) && Math.floor(n) === n ? function(t, e, i, s) { + "-" !== t && "+" !== t || (i = e + i); + if (i === e || i < 0 || i >= s) + return !1; + return i + }(s[0], e, n, i) : ["origin", "start", "end", "stack", "shape"].indexOf(s) >= 0 && s + } + function _o(t, e, i) { + const s = []; + for (let n = 0; n < i.length; n++) { + const o = i[n] + , {first: a, last: r, point: l} = yo(o, e, "x"); + if (!(!l || a && r)) + if (a) + s.unshift(l); + else if (t.push(l), + !r) + break + } + t.push(...s) + } + function yo(t, e, i) { + const s = t.interpolate(e, i); + if (!s) + return {}; + const n = s[i] + , o = t.segments + , a = t.points; + let r = !1 + , l = !1; + for (let t = 0; t < o.length; t++) { + const e = o[t] + , s = a[e.start][i] + , h = a[e.end][i]; + if (ee(n, s, h)) { + r = n === s, + l = n === h; + break + } + } + return { + first: r, + last: l, + point: s + } + } + class vo { + constructor(t) { + this.x = t.x, + this.y = t.y, + this.radius = t.radius + } + pathSegment(t, e, i) { + const {x: s, y: n, radius: o} = this; + return e = e || { + start: 0, + end: At + }, + t.arc(s, n, o, e.end, e.start, !0), + !i.bounds + } + interpolate(t) { + const {x: e, y: i, radius: s} = this + , n = t.angle; + return { + x: e + Math.cos(n) * s, + y: i + Math.sin(n) * s, + angle: n + } + } + } + function wo(t) { + const {chart: e, fill: i, line: s} = t; + if (K(i)) + return function(t, e) { + const i = t.getDatasetMeta(e); + return i && t.isDatasetVisible(e) ? i.dataset : null + }(e, i); + if ("stack" === i) + return function(t) { + const {scale: e, index: i, line: s} = t + , n = [] + , o = s.segments + , a = s.points + , r = function(t, e) { + const i = [] + , s = t.getMatchingVisibleMetas("line"); + for (let t = 0; t < s.length; t++) { + const n = s[t]; + if (n.index === e) + break; + n.hidden || i.unshift(n.dataset) + } + return i + }(e, i); + r.push(po({ + x: null, + y: e.bottom + }, s)); + for (let t = 0; t < o.length; t++) { + const e = o[t]; + for (let t = e.start; t <= e.end; t++) + _o(n, a[t], r) + } + return new Zn({ + points: n, + options: {} + }) + }(t); + if ("shape" === i) + return !0; + const n = function(t) { + if ((t.scale || {}).getPointPositionForValue) + return function(t) { + const {scale: e, fill: i} = t + , s = e.options + , n = e.getLabels().length + , o = s.reverse ? e.max : e.min + , a = function(t, e, i) { + let s; + return s = "start" === t ? i : "end" === t ? e.options.reverse ? e.min : e.max : q(t) ? t.value : e.getBaseValue(), + s + }(i, e, o) + , r = []; + if (s.grid.circular) { + const t = e.getPointPositionForValue(0, o); + return new vo({ + x: t.x, + y: t.y, + radius: e.getDistanceFromCenterForValue(a) + }) + } + for (let t = 0; t < n; ++t) + r.push(e.getPointPositionForValue(t, a)); + return r + }(t); + return function(t) { + const {scale: e={}, fill: i} = t + , s = function(t, e) { + let i = null; + return "start" === t ? i = e.bottom : "end" === t ? i = e.top : q(t) ? i = e.getPixelForValue(t.value) : e.getBasePixel && (i = e.getBasePixel()), + i + }(i, e); + if (K(s)) { + const t = e.isHorizontal(); + return { + x: t ? s : null, + y: t ? null : s + } + } + return null + }(t) + }(t); + return n instanceof vo ? n : po(n, s) + } + function Mo(t, e, i) { + const s = wo(e) + , {line: n, scale: o, axis: a} = e + , r = n.options + , l = r.fill + , h = r.backgroundColor + , {above: c=h, below: d=h} = l || {}; + s && n.points.length && (Me(t, i), + function(t, e) { + const {line: i, target: s, above: n, below: o, area: a, scale: r} = e + , l = i._loop ? "angle" : e.axis; + t.save(), + "x" === l && o !== n && (ko(t, s, a.top), + So(t, { + line: i, + target: s, + color: n, + scale: r, + property: l + }), + t.restore(), + t.save(), + ko(t, s, a.bottom)); + So(t, { + line: i, + target: s, + color: o, + scale: r, + property: l + }), + t.restore() + }(t, { + line: n, + target: s, + above: c, + below: d, + area: i, + scale: o, + axis: a + }), + ke(t)) + } + function ko(t, e, i) { + const {segments: s, points: n} = e; + let o = !0 + , a = !1; + t.beginPath(); + for (const r of s) { + const {start: s, end: l} = r + , h = n[s] + , c = n[fo(s, l, n)]; + o ? (t.moveTo(h.x, h.y), + o = !1) : (t.lineTo(h.x, i), + t.lineTo(h.x, h.y)), + a = !!e.pathSegment(t, r, { + move: a + }), + a ? t.closePath() : t.lineTo(c.x, i) + } + t.lineTo(e.first().x, i), + t.closePath(), + t.clip() + } + function So(t, e) { + const {line: i, target: s, property: n, color: o, scale: a} = e + , r = function(t, e, i) { + const s = t.segments + , n = t.points + , o = e.points + , a = []; + for (const t of s) { + let {start: s, end: r} = t; + r = fo(s, r, n); + const l = uo(i, n[s], n[r], t.loop); + if (!e.segments) { + a.push({ + source: t, + target: l, + start: n[s], + end: n[r] + }); + continue + } + const h = Mi(e, l); + for (const e of h) { + const s = uo(i, o[e.start], o[e.end], e.loop) + , r = wi(t, n, s); + for (const t of r) + a.push({ + source: t, + target: e, + start: { + [i]: go(l, s, "start", Math.max) + }, + end: { + [i]: go(l, s, "end", Math.min) + } + }) + } + } + return a + }(i, s, n); + for (const {source: e, target: l, start: h, end: c} of r) { + const {style: {backgroundColor: r=o}={}} = e + , d = !0 !== s; + t.save(), + t.fillStyle = r, + Po(t, a, d && uo(n, h, c)), + t.beginPath(); + const u = !!i.pathSegment(t, e); + let f; + if (d) { + u ? t.closePath() : Do(t, s, c, n); + const e = !!s.pathSegment(t, l, { + move: u, + reverse: !0 + }); + f = u && e, + f || Do(t, s, h, n) + } + t.closePath(), + t.fill(f ? "evenodd" : "nonzero"), + t.restore() + } + } + function Po(t, e, i) { + const {top: s, bottom: n} = e.chart.chartArea + , {property: o, start: a, end: r} = i || {}; + "x" === o && (t.beginPath(), + t.rect(a, s, r - a, n - s), + t.clip()) + } + function Do(t, e, i, s) { + const n = e.interpolate(i, s); + n && t.lineTo(n.x, n.y) + } + var Co = { + id: "filler", + afterDatasetsUpdate(t, e, i) { + const s = (t.data.datasets || []).length + , n = []; + let o, a, r, l; + for (a = 0; a < s; ++a) + o = t.getDatasetMeta(a), + r = o.dataset, + l = null, + r && r.options && r instanceof Zn && (l = { + visible: t.isDatasetVisible(a), + index: a, + fill: xo(r, a, s), + chart: t, + axis: o.controller.options.indexAxis, + scale: o.vScale, + line: r + }), + o.$filler = l, + n.push(l); + for (a = 0; a < s; ++a) + l = n[a], + l && !1 !== l.fill && (l.fill = bo(n, a, i.propagate)) + }, + beforeDraw(t, e, i) { + const s = "beforeDraw" === i.drawTime + , n = t.getSortedVisibleDatasetMetas() + , o = t.chartArea; + for (let e = n.length - 1; e >= 0; --e) { + const i = n[e].$filler; + i && (i.line.updateControlPoints(o, i.axis), + s && i.fill && Mo(t.ctx, i, o)) + } + }, + beforeDatasetsDraw(t, e, i) { + if ("beforeDatasetsDraw" !== i.drawTime) + return; + const s = t.getSortedVisibleDatasetMetas(); + for (let e = s.length - 1; e >= 0; --e) { + const i = s[e].$filler; + mo(i) && Mo(t.ctx, i, t.chartArea) + } + }, + beforeDatasetDraw(t, e, i) { + const s = e.meta.$filler; + mo(s) && "beforeDatasetDraw" === i.drawTime && Mo(t.ctx, s, t.chartArea) + }, + defaults: { + propagate: !0, + drawTime: "beforeDatasetDraw" + } + }; + const Oo = (t,e)=>{ + let {boxHeight: i=e, boxWidth: s=e} = t; + return t.usePointStyle && (i = Math.min(i, e), + s = t.pointStyleWidth || Math.min(s, e)), + { + boxWidth: s, + boxHeight: i, + itemHeight: Math.max(e, i) + } + } + ; + class Ao extends As { + constructor(t) { + super(), + this._added = !1, + this.legendHitBoxes = [], + this._hoveredItem = null, + this.doughnutMode = !1, + this.chart = t.chart, + this.options = t.options, + this.ctx = t.ctx, + this.legendItems = void 0, + this.columnSizes = void 0, + this.lineWidths = void 0, + this.maxHeight = void 0, + this.maxWidth = void 0, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.height = void 0, + this.width = void 0, + this._margins = void 0, + this.position = void 0, + this.weight = void 0, + this.fullSize = void 0 + } + update(t, e, i) { + this.maxWidth = t, + this.maxHeight = e, + this._margins = i, + this.setDimensions(), + this.buildLabels(), + this.fit() + } + setDimensions() { + this.isHorizontal() ? (this.width = this.maxWidth, + this.left = this._margins.left, + this.right = this.width) : (this.height = this.maxHeight, + this.top = this._margins.top, + this.bottom = this.height) + } + buildLabels() { + const t = this.options.labels || {}; + let e = tt(t.generateLabels, [this.chart], this) || []; + t.filter && (e = e.filter((e=>t.filter(e, this.chart.data)))), + t.sort && (e = e.sort(((e,i)=>t.sort(e, i, this.chart.data)))), + this.options.reverse && e.reverse(), + this.legendItems = e + } + fit() { + const {options: t, ctx: e} = this; + if (!t.display) + return void (this.width = this.height = 0); + const i = t.labels + , s = fi(i.font) + , n = s.size + , o = this._computeTitleHeight() + , {boxWidth: a, itemHeight: r} = Oo(i, n); + let l, h; + e.font = s.string, + this.isHorizontal() ? (l = this.maxWidth, + h = this._fitRows(o, n, a, r) + 10) : (h = this.maxHeight, + l = this._fitCols(o, n, a, r) + 10), + this.width = Math.min(l, t.maxWidth || this.maxWidth), + this.height = Math.min(h, t.maxHeight || this.maxHeight) + } + _fitRows(t, e, i, s) { + const {ctx: n, maxWidth: o, options: {labels: {padding: a}}} = this + , r = this.legendHitBoxes = [] + , l = this.lineWidths = [0] + , h = s + a; + let c = t; + n.textAlign = "left", + n.textBaseline = "middle"; + let d = -1 + , u = -h; + return this.legendItems.forEach(((t,f)=>{ + const g = i + e / 2 + n.measureText(t.text).width; + (0 === f || l[l.length - 1] + g + 2 * a > o) && (c += h, + l[l.length - (f > 0 ? 0 : 1)] = 0, + u += h, + d++), + r[f] = { + left: 0, + top: u, + row: d, + width: g, + height: s + }, + l[l.length - 1] += g + a + } + )), + c + } + _fitCols(t, e, i, s) { + const {ctx: n, maxHeight: o, options: {labels: {padding: a}}} = this + , r = this.legendHitBoxes = [] + , l = this.columnSizes = [] + , h = o - t; + let c = a + , d = 0 + , u = 0 + , f = 0 + , g = 0; + return this.legendItems.forEach(((t,o)=>{ + const p = i + e / 2 + n.measureText(t.text).width; + o > 0 && u + s + 2 * a > h && (c += d + a, + l.push({ + width: d, + height: u + }), + f += d + a, + g++, + d = u = 0), + r[o] = { + left: f, + top: u, + col: g, + width: p, + height: s + }, + d = Math.max(d, p), + u += s + a + } + )), + c += d, + l.push({ + width: d, + height: u + }), + c + } + adjustHitBoxes() { + if (!this.options.display) + return; + const t = this._computeTitleHeight() + , {legendHitBoxes: e, options: {align: i, labels: {padding: s}, rtl: o}} = this + , a = bi(o, this.left, this.width); + if (this.isHorizontal()) { + let o = 0 + , r = n(i, this.left + s, this.right - this.lineWidths[o]); + for (const l of e) + o !== l.row && (o = l.row, + r = n(i, this.left + s, this.right - this.lineWidths[o])), + l.top += this.top + t + s, + l.left = a.leftForLtr(a.x(r), l.width), + r += l.width + s + } else { + let o = 0 + , r = n(i, this.top + t + s, this.bottom - this.columnSizes[o].height); + for (const l of e) + l.col !== o && (o = l.col, + r = n(i, this.top + t + s, this.bottom - this.columnSizes[o].height)), + l.top = r, + l.left += this.left + s, + l.left = a.leftForLtr(a.x(l.left), l.width), + r += l.height + s + } + } + isHorizontal() { + return "top" === this.options.position || "bottom" === this.options.position + } + draw() { + if (this.options.display) { + const t = this.ctx; + Me(t, this), + this._draw(), + ke(t) + } + } + _draw() { + const {options: t, columnSizes: e, lineWidths: i, ctx: s} = this + , {align: a, labels: r} = t + , l = yt.color + , h = bi(t.rtl, this.left, this.width) + , c = fi(r.font) + , {color: d, padding: u} = r + , f = c.size + , g = f / 2; + let p; + this.drawTitle(), + s.textAlign = h.textAlign("left"), + s.textBaseline = "middle", + s.lineWidth = .5, + s.font = c.string; + const {boxWidth: m, boxHeight: b, itemHeight: x} = Oo(r, f) + , _ = this.isHorizontal() + , y = this._computeTitleHeight(); + p = _ ? { + x: n(a, this.left + u, this.right - i[0]), + y: this.top + u + y, + line: 0 + } : { + x: this.left + u, + y: n(a, this.top + y + u, this.bottom - e[0].height), + line: 0 + }, + xi(this.ctx, t.textDirection); + const v = x + u; + this.legendItems.forEach(((w,M)=>{ + s.strokeStyle = w.fontColor || d, + s.fillStyle = w.fontColor || d; + const k = s.measureText(w.text).width + , S = h.textAlign(w.textAlign || (w.textAlign = r.textAlign)) + , P = m + g + k; + let D = p.x + , C = p.y; + h.setWidth(this.width), + _ ? M > 0 && D + P + u > this.right && (C = p.y += v, + p.line++, + D = p.x = n(a, this.left + u, this.right - i[p.line])) : M > 0 && C + v > this.bottom && (D = p.x = D + e[p.line].width + u, + p.line++, + C = p.y = n(a, this.top + y + u, this.bottom - e[p.line].height)); + !function(t, e, i) { + if (isNaN(m) || m <= 0 || isNaN(b) || b < 0) + return; + s.save(); + const n = Z(i.lineWidth, 1); + if (s.fillStyle = Z(i.fillStyle, l), + s.lineCap = Z(i.lineCap, "butt"), + s.lineDashOffset = Z(i.lineDashOffset, 0), + s.lineJoin = Z(i.lineJoin, "miter"), + s.lineWidth = n, + s.strokeStyle = Z(i.strokeStyle, l), + s.setLineDash(Z(i.lineDash, [])), + r.usePointStyle) { + const o = { + radius: b * Math.SQRT2 / 2, + pointStyle: i.pointStyle, + rotation: i.rotation, + borderWidth: n + } + , a = h.xPlus(t, m / 2); + ve(s, o, a, e + g, m) + } else { + const o = e + Math.max((f - b) / 2, 0) + , a = h.leftForLtr(t, m) + , r = di(i.borderRadius); + s.beginPath(), + Object.values(r).some((t=>0 !== t)) ? Oe(s, { + x: a, + y: o, + w: m, + h: b, + radius: r + }) : s.rect(a, o, m, b), + s.fill(), + 0 !== n && s.stroke() + } + s.restore() + }(h.x(D), C, w), + D = o(S, D + m + g, _ ? D + P : this.right, t.rtl), + function(t, e, i) { + De(s, i.text, t, e + x / 2, c, { + strikethrough: i.hidden, + textAlign: h.textAlign(i.textAlign) + }) + }(h.x(D), C, w), + _ ? p.x += P + u : p.y += v + } + )), + _i(this.ctx, t.textDirection) + } + drawTitle() { + const t = this.options + , e = t.title + , i = fi(e.font) + , o = ui(e.padding); + if (!e.display) + return; + const a = bi(t.rtl, this.left, this.width) + , r = this.ctx + , l = e.position + , h = i.size / 2 + , c = o.top + h; + let d, u = this.left, f = this.width; + if (this.isHorizontal()) + f = Math.max(...this.lineWidths), + d = this.top + c, + u = n(t.align, u, this.right - f); + else { + const e = this.columnSizes.reduce(((t,e)=>Math.max(t, e.height)), 0); + d = c + n(t.align, this.top, this.bottom - e - t.labels.padding - this._computeTitleHeight()) + } + const g = n(l, u, u + f); + r.textAlign = a.textAlign(s(l)), + r.textBaseline = "middle", + r.strokeStyle = e.color, + r.fillStyle = e.color, + r.font = i.string, + De(r, e.text, g, d, i) + } + _computeTitleHeight() { + const t = this.options.title + , e = fi(t.font) + , i = ui(t.padding); + return t.display ? e.lineHeight + i.height : 0 + } + _getLegendItemAt(t, e) { + let i, s, n; + if (ee(t, this.left, this.right) && ee(e, this.top, this.bottom)) + for (n = this.legendHitBoxes, + i = 0; i < n.length; ++i) + if (s = n[i], + ee(t, s.left, s.left + s.width) && ee(e, s.top, s.top + s.height)) + return this.legendItems[i]; + return null + } + handleEvent(t) { + const e = this.options; + if (!function(t, e) { + if (("mousemove" === t || "mouseout" === t) && (e.onHover || e.onLeave)) + return !0; + if (e.onClick && ("click" === t || "mouseup" === t)) + return !0; + return !1 + }(t.type, e)) + return; + const i = this._getLegendItemAt(t.x, t.y); + if ("mousemove" === t.type || "mouseout" === t.type) { + const o = this._hoveredItem + , a = (n = i, + null !== (s = o) && null !== n && s.datasetIndex === n.datasetIndex && s.index === n.index); + o && !a && tt(e.onLeave, [t, o, this], this), + this._hoveredItem = i, + i && !a && tt(e.onHover, [t, i, this], this) + } else + i && tt(e.onClick, [t, i, this], this); + var s, n + } + } + var To = { + id: "legend", + _element: Ao, + start(t, e, i) { + const s = t.legend = new Ao({ + ctx: t.ctx, + options: i, + chart: t + }); + qi.configure(t, s, i), + qi.addBox(t, s) + }, + stop(t) { + qi.removeBox(t, t.legend), + delete t.legend + }, + beforeUpdate(t, e, i) { + const s = t.legend; + qi.configure(t, s, i), + s.options = i + }, + afterUpdate(t) { + const e = t.legend; + e.buildLabels(), + e.adjustHitBoxes() + }, + afterEvent(t, e) { + e.replay || t.legend.handleEvent(e.event) + }, + defaults: { + display: !0, + position: "top", + align: "center", + fullSize: !0, + reverse: !1, + weight: 1e3, + onClick(t, e, i) { + const s = e.datasetIndex + , n = i.chart; + n.isDatasetVisible(s) ? (n.hide(s), + e.hidden = !0) : (n.show(s), + e.hidden = !1) + }, + onHover: null, + onLeave: null, + labels: { + color: t=>t.chart.options.color, + boxWidth: 40, + padding: 10, + generateLabels(t) { + const e = t.data.datasets + , {labels: {usePointStyle: i, pointStyle: s, textAlign: n, color: o}} = t.legend.options; + return t._getSortedDatasetMetas().map((t=>{ + const a = t.controller.getStyle(i ? 0 : void 0) + , r = ui(a.borderWidth); + return { + text: e[t.index].label, + fillStyle: a.backgroundColor, + fontColor: o, + hidden: !t.visible, + lineCap: a.borderCapStyle, + lineDash: a.borderDash, + lineDashOffset: a.borderDashOffset, + lineJoin: a.borderJoinStyle, + lineWidth: (r.width + r.height) / 4, + strokeStyle: a.borderColor, + pointStyle: s || a.pointStyle, + rotation: a.rotation, + textAlign: n || a.textAlign, + borderRadius: 0, + datasetIndex: t.index + } + } + ), this) + } + }, + title: { + color: t=>t.chart.options.color, + display: !1, + position: "center", + text: "" + } + }, + descriptors: { + _scriptable: t=>!t.startsWith("on"), + labels: { + _scriptable: t=>!["generateLabels", "filter", "sort"].includes(t) + } + } + }; + class Lo extends As { + constructor(t) { + super(), + this.chart = t.chart, + this.options = t.options, + this.ctx = t.ctx, + this._padding = void 0, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.width = void 0, + this.height = void 0, + this.position = void 0, + this.weight = void 0, + this.fullSize = void 0 + } + update(t, e) { + const i = this.options; + if (this.left = 0, + this.top = 0, + !i.display) + return void (this.width = this.height = this.right = this.bottom = 0); + this.width = this.right = t, + this.height = this.bottom = e; + const s = X(i.text) ? i.text.length : 1; + this._padding = ui(i.padding); + const n = s * fi(i.font).lineHeight + this._padding.height; + this.isHorizontal() ? this.height = n : this.width = n + } + isHorizontal() { + const t = this.options.position; + return "top" === t || "bottom" === t + } + _drawArgs(t) { + const {top: e, left: i, bottom: s, right: o, options: a} = this + , r = a.align; + let l, h, c, d = 0; + return this.isHorizontal() ? (h = n(r, i, o), + c = e + t, + l = o - i) : ("left" === a.position ? (h = i + t, + c = n(r, s, e), + d = -.5 * Ot) : (h = o - t, + c = n(r, e, s), + d = .5 * Ot), + l = s - e), + { + titleX: h, + titleY: c, + maxWidth: l, + rotation: d + } + } + draw() { + const t = this.ctx + , e = this.options; + if (!e.display) + return; + const i = fi(e.font) + , n = i.lineHeight / 2 + this._padding.top + , {titleX: o, titleY: a, maxWidth: r, rotation: l} = this._drawArgs(n); + De(t, e.text, 0, 0, i, { + color: e.color, + maxWidth: r, + rotation: l, + textAlign: s(e.align), + textBaseline: "middle", + translation: [o, a] + }) + } + } + var Ro = { + id: "title", + _element: Lo, + start(t, e, i) { + !function(t, e) { + const i = new Lo({ + ctx: t.ctx, + options: e, + chart: t + }); + qi.configure(t, i, e), + qi.addBox(t, i), + t.titleBlock = i + }(t, i) + }, + stop(t) { + const e = t.titleBlock; + qi.removeBox(t, e), + delete t.titleBlock + }, + beforeUpdate(t, e, i) { + const s = t.titleBlock; + qi.configure(t, s, i), + s.options = i + }, + defaults: { + align: "center", + display: !1, + font: { + weight: "bold" + }, + fullSize: !0, + padding: 10, + position: "top", + text: "", + weight: 2e3 + }, + defaultRoutes: { + color: "color" + }, + descriptors: { + _scriptable: !0, + _indexable: !1 + } + }; + const Eo = new WeakMap; + var Io = { + id: "subtitle", + start(t, e, i) { + const s = new Lo({ + ctx: t.ctx, + options: i, + chart: t + }); + qi.configure(t, s, i), + qi.addBox(t, s), + Eo.set(t, s) + }, + stop(t) { + qi.removeBox(t, Eo.get(t)), + Eo.delete(t) + }, + beforeUpdate(t, e, i) { + const s = Eo.get(t); + qi.configure(t, s, i), + s.options = i + }, + defaults: { + align: "center", + display: !1, + font: { + weight: "normal" + }, + fullSize: !0, + padding: 0, + position: "top", + text: "", + weight: 1500 + }, + defaultRoutes: { + color: "color" + }, + descriptors: { + _scriptable: !0, + _indexable: !1 + } + }; + const zo = { + average(t) { + if (!t.length) + return !1; + let e, i, s = 0, n = 0, o = 0; + for (e = 0, + i = t.length; e < i; ++e) { + const i = t[e].element; + if (i && i.hasValue()) { + const t = i.tooltipPosition(); + s += t.x, + n += t.y, + ++o + } + } + return { + x: s / o, + y: n / o + } + }, + nearest(t, e) { + if (!t.length) + return !1; + let i, s, n, o = e.x, a = e.y, r = Number.POSITIVE_INFINITY; + for (i = 0, + s = t.length; i < s; ++i) { + const s = t[i].element; + if (s && s.hasValue()) { + const t = Kt(e, s.getCenterPoint()); + t < r && (r = t, + n = s) + } + } + if (n) { + const t = n.tooltipPosition(); + o = t.x, + a = t.y + } + return { + x: o, + y: a + } + } + }; + function Fo(t, e) { + return e && (X(e) ? Array.prototype.push.apply(t, e) : t.push(e)), + t + } + function Bo(t) { + return ("string" == typeof t || t instanceof String) && t.indexOf("\n") > -1 ? t.split("\n") : t + } + function Vo(t, e) { + const {element: i, datasetIndex: s, index: n} = e + , o = t.getDatasetMeta(s).controller + , {label: a, value: r} = o.getLabelAndValue(n); + return { + chart: t, + label: a, + parsed: o.getParsed(n), + raw: t.data.datasets[s].data[n], + formattedValue: r, + dataset: o.getDataset(), + dataIndex: n, + datasetIndex: s, + element: i + } + } + function Wo(t, e) { + const i = t.chart.ctx + , {body: s, footer: n, title: o} = t + , {boxWidth: a, boxHeight: r} = e + , l = fi(e.bodyFont) + , h = fi(e.titleFont) + , c = fi(e.footerFont) + , d = o.length + , u = n.length + , f = s.length + , g = ui(e.padding); + let p = g.height + , m = 0 + , b = s.reduce(((t,e)=>t + e.before.length + e.lines.length + e.after.length), 0); + if (b += t.beforeBody.length + t.afterBody.length, + d && (p += d * h.lineHeight + (d - 1) * e.titleSpacing + e.titleMarginBottom), + b) { + p += f * (e.displayColors ? Math.max(r, l.lineHeight) : l.lineHeight) + (b - f) * l.lineHeight + (b - 1) * e.bodySpacing + } + u && (p += e.footerMarginTop + u * c.lineHeight + (u - 1) * e.footerSpacing); + let x = 0; + const _ = function(t) { + m = Math.max(m, i.measureText(t).width + x) + }; + return i.save(), + i.font = h.string, + et(t.title, _), + i.font = l.string, + et(t.beforeBody.concat(t.afterBody), _), + x = e.displayColors ? a + 2 + e.boxPadding : 0, + et(s, (t=>{ + et(t.before, _), + et(t.lines, _), + et(t.after, _) + } + )), + x = 0, + i.font = c.string, + et(t.footer, _), + i.restore(), + m += g.width, + { + width: m, + height: p + } + } + function No(t, e, i, s) { + const {x: n, width: o} = i + , {width: a, chartArea: {left: r, right: l}} = t; + let h = "center"; + return "center" === s ? h = n <= (r + l) / 2 ? "left" : "right" : n <= o / 2 ? h = "left" : n >= a - o / 2 && (h = "right"), + function(t, e, i, s) { + const {x: n, width: o} = s + , a = i.caretSize + i.caretPadding; + return "left" === t && n + o + a > e.width || "right" === t && n - o - a < 0 || void 0 + }(h, t, e, i) && (h = "center"), + h + } + function jo(t, e, i) { + const s = i.yAlign || e.yAlign || function(t, e) { + const {y: i, height: s} = e; + return i < s / 2 ? "top" : i > t.height - s / 2 ? "bottom" : "center" + }(t, i); + return { + xAlign: i.xAlign || e.xAlign || No(t, e, i, s), + yAlign: s + } + } + function Ho(t, e, i, s) { + const {caretSize: n, caretPadding: o, cornerRadius: a} = t + , {xAlign: r, yAlign: l} = i + , h = n + o + , {topLeft: c, topRight: d, bottomLeft: u, bottomRight: f} = di(a); + let g = function(t, e) { + let {x: i, width: s} = t; + return "right" === e ? i -= s : "center" === e && (i -= s / 2), + i + }(e, r); + const p = function(t, e, i) { + let {y: s, height: n} = t; + return "top" === e ? s += i : s -= "bottom" === e ? n + i : n / 2, + s + }(e, l, h); + return "center" === l ? "left" === r ? g += h : "right" === r && (g -= h) : "left" === r ? g -= Math.max(c, u) + n : "right" === r && (g += Math.max(d, f) + n), + { + x: Qt(g, 0, s.width - e.width), + y: Qt(p, 0, s.height - e.height) + } + } + function $o(t, e, i) { + const s = ui(i.padding); + return "center" === e ? t.x + t.width / 2 : "right" === e ? t.x + t.width - s.right : t.x + s.left + } + function Yo(t) { + return Fo([], Bo(t)) + } + function Uo(t, e) { + const i = e && e.dataset && e.dataset.tooltip && e.dataset.tooltip.callbacks; + return i ? t.override(i) : t + } + class Xo extends As { + constructor(t) { + super(), + this.opacity = 0, + this._active = [], + this._eventPosition = void 0, + this._size = void 0, + this._cachedAnimations = void 0, + this._tooltipItems = [], + this.$animations = void 0, + this.$context = void 0, + this.chart = t.chart || t._chart, + this._chart = this.chart, + this.options = t.options, + this.dataPoints = void 0, + this.title = void 0, + this.beforeBody = void 0, + this.body = void 0, + this.afterBody = void 0, + this.footer = void 0, + this.xAlign = void 0, + this.yAlign = void 0, + this.x = void 0, + this.y = void 0, + this.height = void 0, + this.width = void 0, + this.caretX = void 0, + this.caretY = void 0, + this.labelColors = void 0, + this.labelPointStyles = void 0, + this.labelTextColors = void 0 + } + initialize(t) { + this.options = t, + this._cachedAnimations = void 0, + this.$context = void 0 + } + _resolveAnimations() { + const t = this._cachedAnimations; + if (t) + return t; + const e = this.chart + , i = this.options.setContext(this.getContext()) + , s = i.enabled && e.options.animation && i.animations + , n = new bs(this.chart,s); + return s._cacheable && (this._cachedAnimations = Object.freeze(n)), + n + } + getContext() { + return this.$context || (this.$context = (t = this.chart.getContext(), + e = this, + i = this._tooltipItems, + mi(t, { + tooltip: e, + tooltipItems: i, + type: "tooltip" + }))); + var t, e, i + } + getTitle(t, e) { + const {callbacks: i} = e + , s = i.beforeTitle.apply(this, [t]) + , n = i.title.apply(this, [t]) + , o = i.afterTitle.apply(this, [t]); + let a = []; + return a = Fo(a, Bo(s)), + a = Fo(a, Bo(n)), + a = Fo(a, Bo(o)), + a + } + getBeforeBody(t, e) { + return Yo(e.callbacks.beforeBody.apply(this, [t])) + } + getBody(t, e) { + const {callbacks: i} = e + , s = []; + return et(t, (t=>{ + const e = { + before: [], + lines: [], + after: [] + } + , n = Uo(i, t); + Fo(e.before, Bo(n.beforeLabel.call(this, t))), + Fo(e.lines, n.label.call(this, t)), + Fo(e.after, Bo(n.afterLabel.call(this, t))), + s.push(e) + } + )), + s + } + getAfterBody(t, e) { + return Yo(e.callbacks.afterBody.apply(this, [t])) + } + getFooter(t, e) { + const {callbacks: i} = e + , s = i.beforeFooter.apply(this, [t]) + , n = i.footer.apply(this, [t]) + , o = i.afterFooter.apply(this, [t]); + let a = []; + return a = Fo(a, Bo(s)), + a = Fo(a, Bo(n)), + a = Fo(a, Bo(o)), + a + } + _createItems(t) { + const e = this._active + , i = this.chart.data + , s = [] + , n = [] + , o = []; + let a, r, l = []; + for (a = 0, + r = e.length; a < r; ++a) + l.push(Vo(this.chart, e[a])); + return t.filter && (l = l.filter(((e,s,n)=>t.filter(e, s, n, i)))), + t.itemSort && (l = l.sort(((e,s)=>t.itemSort(e, s, i)))), + et(l, (e=>{ + const i = Uo(t.callbacks, e); + s.push(i.labelColor.call(this, e)), + n.push(i.labelPointStyle.call(this, e)), + o.push(i.labelTextColor.call(this, e)) + } + )), + this.labelColors = s, + this.labelPointStyles = n, + this.labelTextColors = o, + this.dataPoints = l, + l + } + update(t, e) { + const i = this.options.setContext(this.getContext()) + , s = this._active; + let n, o = []; + if (s.length) { + const t = zo[i.position].call(this, s, this._eventPosition); + o = this._createItems(i), + this.title = this.getTitle(o, i), + this.beforeBody = this.getBeforeBody(o, i), + this.body = this.getBody(o, i), + this.afterBody = this.getAfterBody(o, i), + this.footer = this.getFooter(o, i); + const e = this._size = Wo(this, i) + , a = Object.assign({}, t, e) + , r = jo(this.chart, i, a) + , l = Ho(i, a, r, this.chart); + this.xAlign = r.xAlign, + this.yAlign = r.yAlign, + n = { + opacity: 1, + x: l.x, + y: l.y, + width: e.width, + height: e.height, + caretX: t.x, + caretY: t.y + } + } else + 0 !== this.opacity && (n = { + opacity: 0 + }); + this._tooltipItems = o, + this.$context = void 0, + n && this._resolveAnimations().update(this, n), + t && i.external && i.external.call(this, { + chart: this.chart, + tooltip: this, + replay: e + }) + } + drawCaret(t, e, i, s) { + const n = this.getCaretPosition(t, i, s); + e.lineTo(n.x1, n.y1), + e.lineTo(n.x2, n.y2), + e.lineTo(n.x3, n.y3) + } + getCaretPosition(t, e, i) { + const {xAlign: s, yAlign: n} = this + , {caretSize: o, cornerRadius: a} = i + , {topLeft: r, topRight: l, bottomLeft: h, bottomRight: c} = di(a) + , {x: d, y: u} = t + , {width: f, height: g} = e; + let p, m, b, x, _, y; + return "center" === n ? (_ = u + g / 2, + "left" === s ? (p = d, + m = p - o, + x = _ + o, + y = _ - o) : (p = d + f, + m = p + o, + x = _ - o, + y = _ + o), + b = p) : (m = "left" === s ? d + Math.max(r, h) + o : "right" === s ? d + f - Math.max(l, c) - o : this.caretX, + "top" === n ? (x = u, + _ = x - o, + p = m - o, + b = m + o) : (x = u + g, + _ = x + o, + p = m + o, + b = m - o), + y = x), + { + x1: p, + x2: m, + x3: b, + y1: x, + y2: _, + y3: y + } + } + drawTitle(t, e, i) { + const s = this.title + , n = s.length; + let o, a, r; + if (n) { + const l = bi(i.rtl, this.x, this.width); + for (t.x = $o(this, i.titleAlign, i), + e.textAlign = l.textAlign(i.titleAlign), + e.textBaseline = "middle", + o = fi(i.titleFont), + a = i.titleSpacing, + e.fillStyle = i.titleColor, + e.font = o.string, + r = 0; r < n; ++r) + e.fillText(s[r], l.x(t.x), t.y + o.lineHeight / 2), + t.y += o.lineHeight + a, + r + 1 === n && (t.y += i.titleMarginBottom - a) + } + } + _drawColorBox(t, e, i, s, n) { + const o = this.labelColors[i] + , a = this.labelPointStyles[i] + , {boxHeight: r, boxWidth: l, boxPadding: h} = n + , c = fi(n.bodyFont) + , d = $o(this, "left", n) + , u = s.x(d) + , f = r < c.lineHeight ? (c.lineHeight - r) / 2 : 0 + , g = e.y + f; + if (n.usePointStyle) { + const e = { + radius: Math.min(l, r) / 2, + pointStyle: a.pointStyle, + rotation: a.rotation, + borderWidth: 1 + } + , i = s.leftForLtr(u, l) + l / 2 + , h = g + r / 2; + t.strokeStyle = n.multiKeyBackground, + t.fillStyle = n.multiKeyBackground, + ye(t, e, i, h), + t.strokeStyle = o.borderColor, + t.fillStyle = o.backgroundColor, + ye(t, e, i, h) + } else { + t.lineWidth = q(o.borderWidth) ? Math.max(...Object.values(o.borderWidth)) : o.borderWidth || 1, + t.strokeStyle = o.borderColor, + t.setLineDash(o.borderDash || []), + t.lineDashOffset = o.borderDashOffset || 0; + const e = s.leftForLtr(u, l - h) + , i = s.leftForLtr(s.xPlus(u, 1), l - h - 2) + , a = di(o.borderRadius); + Object.values(a).some((t=>0 !== t)) ? (t.beginPath(), + t.fillStyle = n.multiKeyBackground, + Oe(t, { + x: e, + y: g, + w: l, + h: r, + radius: a + }), + t.fill(), + t.stroke(), + t.fillStyle = o.backgroundColor, + t.beginPath(), + Oe(t, { + x: i, + y: g + 1, + w: l - 2, + h: r - 2, + radius: a + }), + t.fill()) : (t.fillStyle = n.multiKeyBackground, + t.fillRect(e, g, l, r), + t.strokeRect(e, g, l, r), + t.fillStyle = o.backgroundColor, + t.fillRect(i, g + 1, l - 2, r - 2)) + } + t.fillStyle = this.labelTextColors[i] + } + drawBody(t, e, i) { + const {body: s} = this + , {bodySpacing: n, bodyAlign: o, displayColors: a, boxHeight: r, boxWidth: l, boxPadding: h} = i + , c = fi(i.bodyFont); + let d = c.lineHeight + , u = 0; + const f = bi(i.rtl, this.x, this.width) + , g = function(i) { + e.fillText(i, f.x(t.x + u), t.y + d / 2), + t.y += d + n + } + , p = f.textAlign(o); + let m, b, x, _, y, v, w; + for (e.textAlign = o, + e.textBaseline = "middle", + e.font = c.string, + t.x = $o(this, p, i), + e.fillStyle = i.bodyColor, + et(this.beforeBody, g), + u = a && "right" !== p ? "center" === o ? l / 2 + h : l + 2 + h : 0, + _ = 0, + v = s.length; _ < v; ++_) { + for (m = s[_], + b = this.labelTextColors[_], + e.fillStyle = b, + et(m.before, g), + x = m.lines, + a && x.length && (this._drawColorBox(e, t, _, f, i), + d = Math.max(c.lineHeight, r)), + y = 0, + w = x.length; y < w; ++y) + g(x[y]), + d = c.lineHeight; + et(m.after, g) + } + u = 0, + d = c.lineHeight, + et(this.afterBody, g), + t.y -= n + } + drawFooter(t, e, i) { + const s = this.footer + , n = s.length; + let o, a; + if (n) { + const r = bi(i.rtl, this.x, this.width); + for (t.x = $o(this, i.footerAlign, i), + t.y += i.footerMarginTop, + e.textAlign = r.textAlign(i.footerAlign), + e.textBaseline = "middle", + o = fi(i.footerFont), + e.fillStyle = i.footerColor, + e.font = o.string, + a = 0; a < n; ++a) + e.fillText(s[a], r.x(t.x), t.y + o.lineHeight / 2), + t.y += o.lineHeight + i.footerSpacing + } + } + drawBackground(t, e, i, s) { + const {xAlign: n, yAlign: o} = this + , {x: a, y: r} = t + , {width: l, height: h} = i + , {topLeft: c, topRight: d, bottomLeft: u, bottomRight: f} = di(s.cornerRadius); + e.fillStyle = s.backgroundColor, + e.strokeStyle = s.borderColor, + e.lineWidth = s.borderWidth, + e.beginPath(), + e.moveTo(a + c, r), + "top" === o && this.drawCaret(t, e, i, s), + e.lineTo(a + l - d, r), + e.quadraticCurveTo(a + l, r, a + l, r + d), + "center" === o && "right" === n && this.drawCaret(t, e, i, s), + e.lineTo(a + l, r + h - f), + e.quadraticCurveTo(a + l, r + h, a + l - f, r + h), + "bottom" === o && this.drawCaret(t, e, i, s), + e.lineTo(a + u, r + h), + e.quadraticCurveTo(a, r + h, a, r + h - u), + "center" === o && "left" === n && this.drawCaret(t, e, i, s), + e.lineTo(a, r + c), + e.quadraticCurveTo(a, r, a + c, r), + e.closePath(), + e.fill(), + s.borderWidth > 0 && e.stroke() + } + _updateAnimationTarget(t) { + const e = this.chart + , i = this.$animations + , s = i && i.x + , n = i && i.y; + if (s || n) { + const i = zo[t.position].call(this, this._active, this._eventPosition); + if (!i) + return; + const o = this._size = Wo(this, t) + , a = Object.assign({}, i, this._size) + , r = jo(e, t, a) + , l = Ho(t, a, r, e); + s._to === l.x && n._to === l.y || (this.xAlign = r.xAlign, + this.yAlign = r.yAlign, + this.width = o.width, + this.height = o.height, + this.caretX = i.x, + this.caretY = i.y, + this._resolveAnimations().update(this, l)) + } + } + _willRender() { + return !!this.opacity + } + draw(t) { + const e = this.options.setContext(this.getContext()); + let i = this.opacity; + if (!i) + return; + this._updateAnimationTarget(e); + const s = { + width: this.width, + height: this.height + } + , n = { + x: this.x, + y: this.y + }; + i = Math.abs(i) < .001 ? 0 : i; + const o = ui(e.padding) + , a = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length; + e.enabled && a && (t.save(), + t.globalAlpha = i, + this.drawBackground(n, t, s, e), + xi(t, e.textDirection), + n.y += o.top, + this.drawTitle(n, t, e), + this.drawBody(n, t, e), + this.drawFooter(n, t, e), + _i(t, e.textDirection), + t.restore()) + } + getActiveElements() { + return this._active || [] + } + setActiveElements(t, e) { + const i = this._active + , s = t.map((({datasetIndex: t, index: e})=>{ + const i = this.chart.getDatasetMeta(t); + if (!i) + throw new Error("Cannot find a dataset at index " + t); + return { + datasetIndex: t, + element: i.data[e], + index: e + } + } + )) + , n = !it(i, s) + , o = this._positionChanged(s, e); + (n || o) && (this._active = s, + this._eventPosition = e, + this._ignoreReplayEvents = !0, + this.update(!0)) + } + handleEvent(t, e, i=!0) { + if (e && this._ignoreReplayEvents) + return !1; + this._ignoreReplayEvents = !1; + const s = this.options + , n = this._active || [] + , o = this._getActiveElements(t, n, e, i) + , a = this._positionChanged(o, t) + , r = e || !it(o, n) || a; + return r && (this._active = o, + (s.enabled || s.external) && (this._eventPosition = { + x: t.x, + y: t.y + }, + this.update(!0, e))), + r + } + _getActiveElements(t, e, i, s) { + const n = this.options; + if ("mouseout" === t.type) + return []; + if (!s) + return e; + const o = this.chart.getElementsAtEventForMode(t, n.mode, n, i); + return n.reverse && o.reverse(), + o + } + _positionChanged(t, e) { + const {caretX: i, caretY: s, options: n} = this + , o = zo[n.position].call(this, t, e); + return !1 !== o && (i !== o.x || s !== o.y) + } + } + Xo.positioners = zo; + var qo = { + id: "tooltip", + _element: Xo, + positioners: zo, + afterInit(t, e, i) { + i && (t.tooltip = new Xo({ + chart: t, + options: i + })) + }, + beforeUpdate(t, e, i) { + t.tooltip && t.tooltip.initialize(i) + }, + reset(t, e, i) { + t.tooltip && t.tooltip.initialize(i) + }, + afterDraw(t) { + const e = t.tooltip; + if (e && e._willRender()) { + const i = { + tooltip: e + }; + if (!1 === t.notifyPlugins("beforeTooltipDraw", i)) + return; + e.draw(t.ctx), + t.notifyPlugins("afterTooltipDraw", i) + } + }, + afterEvent(t, e) { + if (t.tooltip) { + const i = e.replay; + t.tooltip.handleEvent(e.event, i, e.inChartArea) && (e.changed = !0) + } + }, + defaults: { + enabled: !0, + external: null, + position: "average", + backgroundColor: "rgba(0,0,0,0.8)", + titleColor: "#fff", + titleFont: { + weight: "bold" + }, + titleSpacing: 2, + titleMarginBottom: 6, + titleAlign: "left", + bodyColor: "#fff", + bodySpacing: 2, + bodyFont: {}, + bodyAlign: "left", + footerColor: "#fff", + footerSpacing: 2, + footerMarginTop: 6, + footerFont: { + weight: "bold" + }, + footerAlign: "left", + padding: 6, + caretPadding: 2, + caretSize: 5, + cornerRadius: 6, + boxHeight: (t,e)=>e.bodyFont.size, + boxWidth: (t,e)=>e.bodyFont.size, + multiKeyBackground: "#fff", + displayColors: !0, + boxPadding: 0, + borderColor: "rgba(0,0,0,0)", + borderWidth: 0, + animation: { + duration: 400, + easing: "easeOutQuart" + }, + animations: { + numbers: { + type: "number", + properties: ["x", "y", "width", "height", "caretX", "caretY"] + }, + opacity: { + easing: "linear", + duration: 200 + } + }, + callbacks: { + beforeTitle: $, + title(t) { + if (t.length > 0) { + const e = t[0] + , i = e.chart.data.labels + , s = i ? i.length : 0; + if (this && this.options && "dataset" === this.options.mode) + return e.dataset.label || ""; + if (e.label) + return e.label; + if (s > 0 && e.dataIndex < s) + return i[e.dataIndex] + } + return "" + }, + afterTitle: $, + beforeBody: $, + beforeLabel: $, + label(t) { + if (this && this.options && "dataset" === this.options.mode) + return t.label + ": " + t.formattedValue || t.formattedValue; + let e = t.dataset.label || ""; + e && (e += ": "); + const i = t.formattedValue; + return U(i) || (e += i), + e + }, + labelColor(t) { + const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); + return { + borderColor: e.borderColor, + backgroundColor: e.backgroundColor, + borderWidth: e.borderWidth, + borderDash: e.borderDash, + borderDashOffset: e.borderDashOffset, + borderRadius: 0 + } + }, + labelTextColor() { + return this.options.bodyColor + }, + labelPointStyle(t) { + const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); + return { + pointStyle: e.pointStyle, + rotation: e.rotation + } + }, + afterLabel: $, + afterBody: $, + beforeFooter: $, + footer: $, + afterFooter: $ + } + }, + defaultRoutes: { + bodyFont: "font", + footerFont: "font", + titleFont: "font" + }, + descriptors: { + _scriptable: t=>"filter" !== t && "itemSort" !== t && "external" !== t, + _indexable: !1, + callbacks: { + _scriptable: !1, + _indexable: !1 + }, + animation: { + _fallback: !1 + }, + animations: { + _fallback: "animation" + } + }, + additionalOptionScopes: ["interaction"] + } + , Ko = Object.freeze({ + __proto__: null, + Decimation: co, + Filler: Co, + Legend: To, + SubTitle: Io, + Title: Ro, + Tooltip: qo + }); + function Go(t, e, i, s) { + const n = t.indexOf(e); + if (-1 === n) + return ((t,e,i,s)=>("string" == typeof e ? (i = t.push(e) - 1, + s.unshift({ + index: i, + label: e + })) : isNaN(e) && (i = null), + i))(t, e, i, s); + return n !== t.lastIndexOf(e) ? i : n + } + class Zo extends Ns { + constructor(t) { + super(t), + this._startValue = void 0, + this._valueRange = 0, + this._addedLabels = [] + } + init(t) { + const e = this._addedLabels; + if (e.length) { + const t = this.getLabels(); + for (const {index: i, label: s} of e) + t[i] === s && t.splice(i, 1); + this._addedLabels = [] + } + super.init(t) + } + parse(t, e) { + if (U(t)) + return null; + const i = this.getLabels(); + return ((t,e)=>null === t ? null : Qt(Math.round(t), 0, e))(e = isFinite(e) && i[e] === t ? e : Go(i, t, Z(e, t), this._addedLabels), i.length - 1) + } + determineDataLimits() { + const {minDefined: t, maxDefined: e} = this.getUserBounds(); + let {min: i, max: s} = this.getMinMax(!0); + "ticks" === this.options.bounds && (t || (i = 0), + e || (s = this.getLabels().length - 1)), + this.min = i, + this.max = s + } + buildTicks() { + const t = this.min + , e = this.max + , i = this.options.offset + , s = []; + let n = this.getLabels(); + n = 0 === t && e === n.length - 1 ? n : n.slice(t, e + 1), + this._valueRange = Math.max(n.length - (i ? 0 : 1), 1), + this._startValue = this.min - (i ? .5 : 0); + for (let i = t; i <= e; i++) + s.push({ + value: i + }); + return s + } + getLabelForValue(t) { + const e = this.getLabels(); + return t >= 0 && t < e.length ? e[t] : t + } + configure() { + super.configure(), + this.isHorizontal() || (this._reversePixels = !this._reversePixels) + } + getPixelForValue(t) { + return "number" != typeof t && (t = this.parse(t)), + null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange) + } + getPixelForTick(t) { + const e = this.ticks; + return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value) + } + getValueForPixel(t) { + return Math.round(this._startValue + this.getDecimalForPixel(t) * this._valueRange) + } + getBasePixel() { + return this.bottom + } + } + function Jo(t, e, {horizontal: i, minRotation: s}) { + const n = Yt(s) + , o = (i ? Math.sin(n) : Math.cos(n)) || .001 + , a = .75 * e * ("" + t).length; + return Math.min(e / o, a) + } + Zo.id = "category", + Zo.defaults = { + ticks: { + callback: Zo.prototype.getLabelForValue + } + }; + class Qo extends Ns { + constructor(t) { + super(t), + this.start = void 0, + this.end = void 0, + this._startValue = void 0, + this._endValue = void 0, + this._valueRange = 0 + } + parse(t, e) { + return U(t) || ("number" == typeof t || t instanceof Number) && !isFinite(+t) ? null : +t + } + handleTickRangeOptions() { + const {beginAtZero: t} = this.options + , {minDefined: e, maxDefined: i} = this.getUserBounds(); + let {min: s, max: n} = this; + const o = t=>s = e ? s : t + , a = t=>n = i ? n : t; + if (t) { + const t = Bt(s) + , e = Bt(n); + t < 0 && e < 0 ? a(0) : t > 0 && e > 0 && o(0) + } + if (s === n) { + let e = 1; + (n >= Number.MAX_SAFE_INTEGER || s <= Number.MIN_SAFE_INTEGER) && (e = Math.abs(.05 * n)), + a(n + e), + t || o(s - e) + } + this.min = s, + this.max = n + } + getTickLimit() { + const t = this.options.ticks; + let e, {maxTicksLimit: i, stepSize: s} = t; + return s ? (e = Math.ceil(this.max / s) - Math.floor(this.min / s) + 1, + e > 1e3 && (console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`), + e = 1e3)) : (e = this.computeTickLimit(), + i = i || 11), + i && (e = Math.min(i, e)), + e + } + computeTickLimit() { + return Number.POSITIVE_INFINITY + } + buildTicks() { + const t = this.options + , e = t.ticks; + let i = this.getTickLimit(); + i = Math.max(2, i); + const s = function(t, e) { + const i = [] + , {bounds: s, step: n, min: o, max: a, precision: r, count: l, maxTicks: h, maxDigits: c, includeBounds: d} = t + , u = n || 1 + , f = h - 1 + , {min: g, max: p} = e + , m = !U(o) + , b = !U(a) + , x = !U(l) + , _ = (p - g) / (c + 1); + let y, v, w, M, k = Vt((p - g) / f / u) * u; + if (k < 1e-14 && !m && !b) + return [{ + value: g + }, { + value: p + }]; + M = Math.ceil(p / k) - Math.floor(g / k), + M > f && (k = Vt(M * k / f / u) * u), + U(r) || (y = Math.pow(10, r), + k = Math.ceil(k * y) / y), + "ticks" === s ? (v = Math.floor(g / k) * k, + w = Math.ceil(p / k) * k) : (v = g, + w = p), + m && b && n && Ht((a - o) / n, k / 1e3) ? (M = Math.round(Math.min((a - o) / k, h)), + k = (a - o) / M, + v = o, + w = a) : x ? (v = m ? o : v, + w = b ? a : w, + M = l - 1, + k = (w - v) / M) : (M = (w - v) / k, + M = jt(M, Math.round(M), k / 1e3) ? Math.round(M) : Math.ceil(M)); + const S = Math.max(Xt(k), Xt(v)); + y = Math.pow(10, U(r) ? S : r), + v = Math.round(v * y) / y, + w = Math.round(w * y) / y; + let P = 0; + for (m && (d && v !== o ? (i.push({ + value: o + }), + v < o && P++, + jt(Math.round((v + P * k) * y) / y, o, Jo(o, _, t)) && P++) : v < o && P++); P < M; ++P) + i.push({ + value: Math.round((v + P * k) * y) / y + }); + return b && d && w !== a ? i.length && jt(i[i.length - 1].value, a, Jo(a, _, t)) ? i[i.length - 1].value = a : i.push({ + value: a + }) : b && w !== a || i.push({ + value: w + }), + i + }({ + maxTicks: i, + bounds: t.bounds, + min: t.min, + max: t.max, + precision: e.precision, + step: e.stepSize, + count: e.count, + maxDigits: this._maxDigits(), + horizontal: this.isHorizontal(), + minRotation: e.minRotation || 0, + includeBounds: !1 !== e.includeBounds + }, this._range || this); + return "ticks" === t.bounds && $t(s, this, "value"), + t.reverse ? (s.reverse(), + this.start = this.max, + this.end = this.min) : (this.start = this.min, + this.end = this.max), + s + } + configure() { + const t = this.ticks; + let e = this.min + , i = this.max; + if (super.configure(), + this.options.offset && t.length) { + const s = (i - e) / Math.max(t.length - 1, 1) / 2; + e -= s, + i += s + } + this._startValue = e, + this._endValue = i, + this._valueRange = i - e + } + getLabelForValue(t) { + return oi(t, this.chart.options.locale, this.options.ticks.format) + } + } + class ta extends Qo { + determineDataLimits() { + const {min: t, max: e} = this.getMinMax(!0); + this.min = K(t) ? t : 0, + this.max = K(e) ? e : 1, + this.handleTickRangeOptions() + } + computeTickLimit() { + const t = this.isHorizontal() + , e = t ? this.width : this.height + , i = Yt(this.options.ticks.minRotation) + , s = (t ? Math.sin(i) : Math.cos(i)) || .001 + , n = this._resolveTickFontOptions(0); + return Math.ceil(e / Math.min(40, n.lineHeight / s)) + } + getPixelForValue(t) { + return null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange) + } + getValueForPixel(t) { + return this._startValue + this.getDecimalForPixel(t) * this._valueRange + } + } + function ea(t) { + return 1 === t / Math.pow(10, Math.floor(Ft(t))) + } + ta.id = "linear", + ta.defaults = { + ticks: { + callback: Ls.formatters.numeric + } + }; + class ia extends Ns { + constructor(t) { + super(t), + this.start = void 0, + this.end = void 0, + this._startValue = void 0, + this._valueRange = 0 + } + parse(t, e) { + const i = Qo.prototype.parse.apply(this, [t, e]); + if (0 !== i) + return K(i) && i > 0 ? i : null; + this._zero = !0 + } + determineDataLimits() { + const {min: t, max: e} = this.getMinMax(!0); + this.min = K(t) ? Math.max(0, t) : null, + this.max = K(e) ? Math.max(0, e) : null, + this.options.beginAtZero && (this._zero = !0), + this.handleTickRangeOptions() + } + handleTickRangeOptions() { + const {minDefined: t, maxDefined: e} = this.getUserBounds(); + let i = this.min + , s = this.max; + const n = e=>i = t ? i : e + , o = t=>s = e ? s : t + , a = (t,e)=>Math.pow(10, Math.floor(Ft(t)) + e); + i === s && (i <= 0 ? (n(1), + o(10)) : (n(a(i, -1)), + o(a(s, 1)))), + i <= 0 && n(a(s, -1)), + s <= 0 && o(a(i, 1)), + this._zero && this.min !== this._suggestedMin && i === a(this.min, 0) && n(a(i, -1)), + this.min = i, + this.max = s + } + buildTicks() { + const t = this.options + , e = function(t, e) { + const i = Math.floor(Ft(e.max)) + , s = Math.ceil(e.max / Math.pow(10, i)) + , n = []; + let o = G(t.min, Math.pow(10, Math.floor(Ft(e.min)))) + , a = Math.floor(Ft(o)) + , r = Math.floor(o / Math.pow(10, a)) + , l = a < 0 ? Math.pow(10, Math.abs(a)) : 1; + do { + n.push({ + value: o, + major: ea(o) + }), + ++r, + 10 === r && (r = 1, + ++a, + l = a >= 0 ? 1 : l), + o = Math.round(r * Math.pow(10, a) * l) / l + } while (a < i || a === i && r < s); + const h = G(t.max, o); + return n.push({ + value: h, + major: ea(o) + }), + n + }({ + min: this._userMin, + max: this._userMax + }, this); + return "ticks" === t.bounds && $t(e, this, "value"), + t.reverse ? (e.reverse(), + this.start = this.max, + this.end = this.min) : (this.start = this.min, + this.end = this.max), + e + } + getLabelForValue(t) { + return void 0 === t ? "0" : oi(t, this.chart.options.locale, this.options.ticks.format) + } + configure() { + const t = this.min; + super.configure(), + this._startValue = Ft(t), + this._valueRange = Ft(this.max) - Ft(t) + } + getPixelForValue(t) { + return void 0 !== t && 0 !== t || (t = this.min), + null === t || isNaN(t) ? NaN : this.getPixelForDecimal(t === this.min ? 0 : (Ft(t) - this._startValue) / this._valueRange) + } + getValueForPixel(t) { + const e = this.getDecimalForPixel(t); + return Math.pow(10, this._startValue + e * this._valueRange) + } + } + function sa(t) { + const e = t.ticks; + if (e.display && t.display) { + const t = ui(e.backdropPadding); + return Z(e.font && e.font.size, yt.font.size) + t.height + } + return 0 + } + function na(t, e, i, s, n) { + return t === s || t === n ? { + start: e - i / 2, + end: e + i / 2 + } : t < s || t > n ? { + start: e - i, + end: e + } : { + start: e, + end: e + i + } + } + function oa(t) { + const e = { + l: t.left + t._padding.left, + r: t.right - t._padding.right, + t: t.top + t._padding.top, + b: t.bottom - t._padding.bottom + } + , i = Object.assign({}, e) + , s = [] + , n = [] + , o = t._pointLabels.length + , a = t.options.pointLabels + , r = a.centerPointLabels ? Ot / o : 0; + for (let d = 0; d < o; d++) { + const o = a.setContext(t.getPointLabelContext(d)); + n[d] = o.padding; + const u = t.getPointPosition(d, t.drawingArea + n[d], r) + , f = fi(o.font) + , g = (l = t.ctx, + h = f, + c = X(c = t._pointLabels[d]) ? c : [c], + { + w: be(l, h.string, c), + h: c.length * h.lineHeight + }); + s[d] = g; + const p = Zt(t.getIndexAngle(d) + r) + , m = Math.round(Ut(p)); + aa(i, e, p, na(m, u.x, g.w, 0, 180), na(m, u.y, g.h, 90, 270)) + } + var l, h, c; + t.setCenterPoint(e.l - i.l, i.r - e.r, e.t - i.t, i.b - e.b), + t._pointLabelItems = function(t, e, i) { + const s = [] + , n = t._pointLabels.length + , o = t.options + , a = sa(o) / 2 + , r = t.drawingArea + , l = o.pointLabels.centerPointLabels ? Ot / n : 0; + for (let o = 0; o < n; o++) { + const n = t.getPointPosition(o, r + a + i[o], l) + , h = Math.round(Ut(Zt(n.angle + Et))) + , c = e[o] + , d = ha(n.y, c.h, h) + , u = ra(h) + , f = la(n.x, c.w, u); + s.push({ + x: n.x, + y: d, + textAlign: u, + left: f, + top: d, + right: f + c.w, + bottom: d + c.h + }) + } + return s + }(t, s, n) + } + function aa(t, e, i, s, n) { + const o = Math.abs(Math.sin(i)) + , a = Math.abs(Math.cos(i)); + let r = 0 + , l = 0; + s.start < e.l ? (r = (e.l - s.start) / o, + t.l = Math.min(t.l, e.l - r)) : s.end > e.r && (r = (s.end - e.r) / o, + t.r = Math.max(t.r, e.r + r)), + n.start < e.t ? (l = (e.t - n.start) / a, + t.t = Math.min(t.t, e.t - l)) : n.end > e.b && (l = (n.end - e.b) / a, + t.b = Math.max(t.b, e.b + l)) + } + function ra(t) { + return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right" + } + function la(t, e, i) { + return "right" === i ? t -= e : "center" === i && (t -= e / 2), + t + } + function ha(t, e, i) { + return 90 === i || 270 === i ? t -= e / 2 : (i > 270 || i < 90) && (t -= e), + t + } + function ca(t, e, i, s) { + const {ctx: n} = t; + if (i) + n.arc(t.xCenter, t.yCenter, e, 0, At); + else { + let i = t.getPointPosition(0, e); + n.moveTo(i.x, i.y); + for (let o = 1; o < s; o++) + i = t.getPointPosition(o, e), + n.lineTo(i.x, i.y) + } + } + ia.id = "logarithmic", + ia.defaults = { + ticks: { + callback: Ls.formatters.logarithmic, + major: { + enabled: !0 + } + } + }; + class da extends Qo { + constructor(t) { + super(t), + this.xCenter = void 0, + this.yCenter = void 0, + this.drawingArea = void 0, + this._pointLabels = [], + this._pointLabelItems = [] + } + setDimensions() { + const t = this._padding = ui(sa(this.options) / 2) + , e = this.width = this.maxWidth - t.width + , i = this.height = this.maxHeight - t.height; + this.xCenter = Math.floor(this.left + e / 2 + t.left), + this.yCenter = Math.floor(this.top + i / 2 + t.top), + this.drawingArea = Math.floor(Math.min(e, i) / 2) + } + determineDataLimits() { + const {min: t, max: e} = this.getMinMax(!1); + this.min = K(t) && !isNaN(t) ? t : 0, + this.max = K(e) && !isNaN(e) ? e : 0, + this.handleTickRangeOptions() + } + computeTickLimit() { + return Math.ceil(this.drawingArea / sa(this.options)) + } + generateTickLabels(t) { + Qo.prototype.generateTickLabels.call(this, t), + this._pointLabels = this.getLabels().map(((t,e)=>{ + const i = tt(this.options.pointLabels.callback, [t, e], this); + return i || 0 === i ? i : "" + } + )).filter(((t,e)=>this.chart.getDataVisibility(e))) + } + fit() { + const t = this.options; + t.display && t.pointLabels.display ? oa(this) : this.setCenterPoint(0, 0, 0, 0) + } + setCenterPoint(t, e, i, s) { + this.xCenter += Math.floor((t - e) / 2), + this.yCenter += Math.floor((i - s) / 2), + this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(t, e, i, s)) + } + getIndexAngle(t) { + return Zt(t * (At / (this._pointLabels.length || 1)) + Yt(this.options.startAngle || 0)) + } + getDistanceFromCenterForValue(t) { + if (U(t)) + return NaN; + const e = this.drawingArea / (this.max - this.min); + return this.options.reverse ? (this.max - t) * e : (t - this.min) * e + } + getValueForDistanceFromCenter(t) { + if (U(t)) + return NaN; + const e = t / (this.drawingArea / (this.max - this.min)); + return this.options.reverse ? this.max - e : this.min + e + } + getPointLabelContext(t) { + const e = this._pointLabels || []; + if (t >= 0 && t < e.length) { + const i = e[t]; + return function(t, e, i) { + return mi(t, { + label: i, + index: e, + type: "pointLabel" + }) + }(this.getContext(), t, i) + } + } + getPointPosition(t, e, i=0) { + const s = this.getIndexAngle(t) - Et + i; + return { + x: Math.cos(s) * e + this.xCenter, + y: Math.sin(s) * e + this.yCenter, + angle: s + } + } + getPointPositionForValue(t, e) { + return this.getPointPosition(t, this.getDistanceFromCenterForValue(e)) + } + getBasePosition(t) { + return this.getPointPositionForValue(t || 0, this.getBaseValue()) + } + getPointLabelPosition(t) { + const {left: e, top: i, right: s, bottom: n} = this._pointLabelItems[t]; + return { + left: e, + top: i, + right: s, + bottom: n + } + } + drawBackground() { + const {backgroundColor: t, grid: {circular: e}} = this.options; + if (t) { + const i = this.ctx; + i.save(), + i.beginPath(), + ca(this, this.getDistanceFromCenterForValue(this._endValue), e, this._pointLabels.length), + i.closePath(), + i.fillStyle = t, + i.fill(), + i.restore() + } + } + drawGrid() { + const t = this.ctx + , e = this.options + , {angleLines: i, grid: s} = e + , n = this._pointLabels.length; + let o, a, r; + if (e.pointLabels.display && function(t, e) { + const {ctx: i, options: {pointLabels: s}} = t; + for (let n = e - 1; n >= 0; n--) { + const e = s.setContext(t.getPointLabelContext(n)) + , o = fi(e.font) + , {x: a, y: r, textAlign: l, left: h, top: c, right: d, bottom: u} = t._pointLabelItems[n] + , {backdropColor: f} = e; + if (!U(f)) { + const t = di(e.borderRadius) + , s = ui(e.backdropPadding); + i.fillStyle = f; + const n = h - s.left + , o = c - s.top + , a = d - h + s.width + , r = u - c + s.height; + Object.values(t).some((t=>0 !== t)) ? (i.beginPath(), + Oe(i, { + x: n, + y: o, + w: a, + h: r, + radius: t + }), + i.fill()) : i.fillRect(n, o, a, r) + } + De(i, t._pointLabels[n], a, r + o.lineHeight / 2, o, { + color: e.color, + textAlign: l, + textBaseline: "middle" + }) + } + }(this, n), + s.display && this.ticks.forEach(((t,e)=>{ + if (0 !== e) { + a = this.getDistanceFromCenterForValue(t.value); + !function(t, e, i, s) { + const n = t.ctx + , o = e.circular + , {color: a, lineWidth: r} = e; + !o && !s || !a || !r || i < 0 || (n.save(), + n.strokeStyle = a, + n.lineWidth = r, + n.setLineDash(e.borderDash), + n.lineDashOffset = e.borderDashOffset, + n.beginPath(), + ca(t, i, o, s), + n.closePath(), + n.stroke(), + n.restore()) + }(this, s.setContext(this.getContext(e - 1)), a, n) + } + } + )), + i.display) { + for (t.save(), + o = n - 1; o >= 0; o--) { + const s = i.setContext(this.getPointLabelContext(o)) + , {color: n, lineWidth: l} = s; + l && n && (t.lineWidth = l, + t.strokeStyle = n, + t.setLineDash(s.borderDash), + t.lineDashOffset = s.borderDashOffset, + a = this.getDistanceFromCenterForValue(e.ticks.reverse ? this.min : this.max), + r = this.getPointPosition(o, a), + t.beginPath(), + t.moveTo(this.xCenter, this.yCenter), + t.lineTo(r.x, r.y), + t.stroke()) + } + t.restore() + } + } + drawBorder() {} + drawLabels() { + const t = this.ctx + , e = this.options + , i = e.ticks; + if (!i.display) + return; + const s = this.getIndexAngle(0); + let n, o; + t.save(), + t.translate(this.xCenter, this.yCenter), + t.rotate(s), + t.textAlign = "center", + t.textBaseline = "middle", + this.ticks.forEach(((s,a)=>{ + if (0 === a && !e.reverse) + return; + const r = i.setContext(this.getContext(a)) + , l = fi(r.font); + if (n = this.getDistanceFromCenterForValue(this.ticks[a].value), + r.showLabelBackdrop) { + t.font = l.string, + o = t.measureText(s.label).width, + t.fillStyle = r.backdropColor; + const e = ui(r.backdropPadding); + t.fillRect(-o / 2 - e.left, -n - l.size / 2 - e.top, o + e.width, l.size + e.height) + } + De(t, s.label, 0, -n, l, { + color: r.color + }) + } + )), + t.restore() + } + drawTitle() {} + } + da.id = "radialLinear", + da.defaults = { + display: !0, + animate: !0, + position: "chartArea", + angleLines: { + display: !0, + lineWidth: 1, + borderDash: [], + borderDashOffset: 0 + }, + grid: { + circular: !1 + }, + startAngle: 0, + ticks: { + showLabelBackdrop: !0, + callback: Ls.formatters.numeric + }, + pointLabels: { + backdropColor: void 0, + backdropPadding: 2, + display: !0, + font: { + size: 10 + }, + callback: t=>t, + padding: 5, + centerPointLabels: !1 + } + }, + da.defaultRoutes = { + "angleLines.color": "borderColor", + "pointLabels.color": "color", + "ticks.color": "color" + }, + da.descriptors = { + angleLines: { + _fallback: "grid" + } + }; + const ua = { + millisecond: { + common: !0, + size: 1, + steps: 1e3 + }, + second: { + common: !0, + size: 1e3, + steps: 60 + }, + minute: { + common: !0, + size: 6e4, + steps: 60 + }, + hour: { + common: !0, + size: 36e5, + steps: 24 + }, + day: { + common: !0, + size: 864e5, + steps: 30 + }, + week: { + common: !1, + size: 6048e5, + steps: 4 + }, + month: { + common: !0, + size: 2628e6, + steps: 12 + }, + quarter: { + common: !1, + size: 7884e6, + steps: 4 + }, + year: { + common: !0, + size: 3154e7 + } + } + , fa = Object.keys(ua); + function ga(t, e) { + return t - e + } + function pa(t, e) { + if (U(e)) + return null; + const i = t._adapter + , {parser: s, round: n, isoWeekday: o} = t._parseOpts; + let a = e; + return "function" == typeof s && (a = s(a)), + K(a) || (a = "string" == typeof s ? i.parse(a, s) : i.parse(a)), + null === a ? null : (n && (a = "week" !== n || !Nt(o) && !0 !== o ? i.startOf(a, n) : i.startOf(a, "isoWeek", o)), + +a) + } + function ma(t, e, i, s) { + const n = fa.length; + for (let o = fa.indexOf(t); o < n - 1; ++o) { + const t = ua[fa[o]] + , n = t.steps ? t.steps : Number.MAX_SAFE_INTEGER; + if (t.common && Math.ceil((i - e) / (n * t.size)) <= s) + return fa[o] + } + return fa[n - 1] + } + function ba(t, e, i) { + if (i) { + if (i.length) { + const {lo: s, hi: n} = vt(i, e); + t[i[s] >= e ? i[s] : i[n]] = !0 + } + } else + t[e] = !0 + } + function xa(t, e, i) { + const s = [] + , n = {} + , o = e.length; + let a, r; + for (a = 0; a < o; ++a) + r = e[a], + n[r] = a, + s.push({ + value: r, + major: !1 + }); + return 0 !== o && i ? function(t, e, i, s) { + const n = t._adapter + , o = +n.startOf(e[0].value, s) + , a = e[e.length - 1].value; + let r, l; + for (r = o; r <= a; r = +n.add(r, 1, s)) + l = i[r], + l >= 0 && (e[l].major = !0); + return e + }(t, s, n, i) : s + } + class _a extends Ns { + constructor(t) { + super(t), + this._cache = { + data: [], + labels: [], + all: [] + }, + this._unit = "day", + this._majorUnit = void 0, + this._offsets = {}, + this._normalized = !1, + this._parseOpts = void 0 + } + init(t, e) { + const i = t.time || (t.time = {}) + , s = this._adapter = new _n._date(t.adapters.date); + rt(i.displayFormats, s.formats()), + this._parseOpts = { + parser: i.parser, + round: i.round, + isoWeekday: i.isoWeekday + }, + super.init(t), + this._normalized = e.normalized + } + parse(t, e) { + return void 0 === t ? null : pa(this, t) + } + beforeLayout() { + super.beforeLayout(), + this._cache = { + data: [], + labels: [], + all: [] + } + } + determineDataLimits() { + const t = this.options + , e = this._adapter + , i = t.time.unit || "day"; + let {min: s, max: n, minDefined: o, maxDefined: a} = this.getUserBounds(); + function r(t) { + o || isNaN(t.min) || (s = Math.min(s, t.min)), + a || isNaN(t.max) || (n = Math.max(n, t.max)) + } + o && a || (r(this._getLabelBounds()), + "ticks" === t.bounds && "labels" === t.ticks.source || r(this.getMinMax(!1))), + s = K(s) && !isNaN(s) ? s : +e.startOf(Date.now(), i), + n = K(n) && !isNaN(n) ? n : +e.endOf(Date.now(), i) + 1, + this.min = Math.min(s, n - 1), + this.max = Math.max(s + 1, n) + } + _getLabelBounds() { + const t = this.getLabelTimestamps(); + let e = Number.POSITIVE_INFINITY + , i = Number.NEGATIVE_INFINITY; + return t.length && (e = t[0], + i = t[t.length - 1]), + { + min: e, + max: i + } + } + buildTicks() { + const t = this.options + , e = t.time + , i = t.ticks + , s = "labels" === i.source ? this.getLabelTimestamps() : this._generate(); + "ticks" === t.bounds && s.length && (this.min = this._userMin || s[0], + this.max = this._userMax || s[s.length - 1]); + const n = this.min + , o = kt(s, n, this.max); + return this._unit = e.unit || (i.autoSkip ? ma(e.minUnit, this.min, this.max, this._getLabelCapacity(n)) : function(t, e, i, s, n) { + for (let o = fa.length - 1; o >= fa.indexOf(i); o--) { + const i = fa[o]; + if (ua[i].common && t._adapter.diff(n, s, i) >= e - 1) + return i + } + return fa[i ? fa.indexOf(i) : 0] + }(this, o.length, e.minUnit, this.min, this.max)), + this._majorUnit = i.major.enabled && "year" !== this._unit ? function(t) { + for (let e = fa.indexOf(t) + 1, i = fa.length; e < i; ++e) + if (ua[fa[e]].common) + return fa[e] + }(this._unit) : void 0, + this.initOffsets(s), + t.reverse && o.reverse(), + xa(this, o, this._majorUnit) + } + afterAutoSkip() { + this.options.offsetAfterAutoskip && this.initOffsets(this.ticks.map((t=>+t.value))) + } + initOffsets(t) { + let e, i, s = 0, n = 0; + this.options.offset && t.length && (e = this.getDecimalForValue(t[0]), + s = 1 === t.length ? 1 - e : (this.getDecimalForValue(t[1]) - e) / 2, + i = this.getDecimalForValue(t[t.length - 1]), + n = 1 === t.length ? i : (i - this.getDecimalForValue(t[t.length - 2])) / 2); + const o = t.length < 3 ? .5 : .25; + s = Qt(s, 0, o), + n = Qt(n, 0, o), + this._offsets = { + start: s, + end: n, + factor: 1 / (s + 1 + n) + } + } + _generate() { + const t = this._adapter + , e = this.min + , i = this.max + , s = this.options + , n = s.time + , o = n.unit || ma(n.minUnit, e, i, this._getLabelCapacity(e)) + , a = Z(n.stepSize, 1) + , r = "week" === o && n.isoWeekday + , l = Nt(r) || !0 === r + , h = {}; + let c, d, u = e; + if (l && (u = +t.startOf(u, "isoWeek", r)), + u = +t.startOf(u, l ? "day" : o), + t.diff(i, e, o) > 1e5 * a) + throw new Error(e + " and " + i + " are too far apart with stepSize of " + a + " " + o); + const f = "data" === s.ticks.source && this.getDataTimestamps(); + for (c = u, + d = 0; c < i; c = +t.add(c, a, o), + d++) + ba(h, c, f); + return c !== i && "ticks" !== s.bounds && 1 !== d || ba(h, c, f), + Object.keys(h).sort(((t,e)=>t - e)).map((t=>+t)) + } + getLabelForValue(t) { + const e = this._adapter + , i = this.options.time; + return i.tooltipFormat ? e.format(t, i.tooltipFormat) : e.format(t, i.displayFormats.datetime) + } + _tickFormatFunction(t, e, i, s) { + const n = this.options + , o = n.time.displayFormats + , a = this._unit + , r = this._majorUnit + , l = a && o[a] + , h = r && o[r] + , c = i[e] + , d = r && h && c && c.major + , u = this._adapter.format(t, s || (d ? h : l)) + , f = n.ticks.callback; + return f ? tt(f, [u, e, i], this) : u + } + generateTickLabels(t) { + let e, i, s; + for (e = 0, + i = t.length; e < i; ++e) + s = t[e], + s.label = this._tickFormatFunction(s.value, e, t) + } + getDecimalForValue(t) { + return null === t ? NaN : (t - this.min) / (this.max - this.min) + } + getPixelForValue(t) { + const e = this._offsets + , i = this.getDecimalForValue(t); + return this.getPixelForDecimal((e.start + i) * e.factor) + } + getValueForPixel(t) { + const e = this._offsets + , i = this.getDecimalForPixel(t) / e.factor - e.end; + return this.min + i * (this.max - this.min) + } + _getLabelSize(t) { + const e = this.options.ticks + , i = this.ctx.measureText(t).width + , s = Yt(this.isHorizontal() ? e.maxRotation : e.minRotation) + , n = Math.cos(s) + , o = Math.sin(s) + , a = this._resolveTickFontOptions(0).size; + return { + w: i * n + a * o, + h: i * o + a * n + } + } + _getLabelCapacity(t) { + const e = this.options.time + , i = e.displayFormats + , s = i[e.unit] || i.millisecond + , n = this._tickFormatFunction(t, 0, xa(this, [t], this._majorUnit), s) + , o = this._getLabelSize(n) + , a = Math.floor(this.isHorizontal() ? this.width / o.w : this.height / o.h) - 1; + return a > 0 ? a : 1 + } + getDataTimestamps() { + let t, e, i = this._cache.data || []; + if (i.length) + return i; + const s = this.getMatchingVisibleMetas(); + if (this._normalized && s.length) + return this._cache.data = s[0].controller.getAllParsedValues(this); + for (t = 0, + e = s.length; t < e; ++t) + i = i.concat(s[t].controller.getAllParsedValues(this)); + return this._cache.data = this.normalize(i) + } + getLabelTimestamps() { + const t = this._cache.labels || []; + let e, i; + if (t.length) + return t; + const s = this.getLabels(); + for (e = 0, + i = s.length; e < i; ++e) + t.push(pa(this, s[e])); + return this._cache.labels = this._normalized ? t : this.normalize(t) + } + normalize(t) { + return Ct(t.sort(ga)) + } + } + function ya(t, e, i) { + let s, n, o, a, r = 0, l = t.length - 1; + i ? (e >= t[r].pos && e <= t[l].pos && ({lo: r, hi: l} = wt(t, "pos", e)), + ({pos: s, time: o} = t[r]), + ({pos: n, time: a} = t[l])) : (e >= t[r].time && e <= t[l].time && ({lo: r, hi: l} = wt(t, "time", e)), + ({time: s, pos: o} = t[r]), + ({time: n, pos: a} = t[l])); + const h = n - s; + return h ? o + (a - o) * (e - s) / h : o + } + _a.id = "time", + _a.defaults = { + bounds: "data", + adapters: {}, + time: { + parser: !1, + unit: !1, + round: !1, + isoWeekday: !1, + minUnit: "millisecond", + displayFormats: {} + }, + ticks: { + source: "auto", + major: { + enabled: !1 + } + } + }; + class va extends _a { + constructor(t) { + super(t), + this._table = [], + this._minPos = void 0, + this._tableRange = void 0 + } + initOffsets() { + const t = this._getTimestampsForTable() + , e = this._table = this.buildLookupTable(t); + this._minPos = ya(e, this.min), + this._tableRange = ya(e, this.max) - this._minPos, + super.initOffsets(t) + } + buildLookupTable(t) { + const {min: e, max: i} = this + , s = [] + , n = []; + let o, a, r, l, h; + for (o = 0, + a = t.length; o < a; ++o) + l = t[o], + l >= e && l <= i && s.push(l); + if (s.length < 2) + return [{ + time: e, + pos: 0 + }, { + time: i, + pos: 1 + }]; + for (o = 0, + a = s.length; o < a; ++o) + h = s[o + 1], + r = s[o - 1], + l = s[o], + Math.round((h + r) / 2) !== l && n.push({ + time: l, + pos: o / (a - 1) + }); + return n + } + _getTimestampsForTable() { + let t = this._cache.all || []; + if (t.length) + return t; + const e = this.getDataTimestamps() + , i = this.getLabelTimestamps(); + return t = e.length && i.length ? this.normalize(e.concat(i)) : e.length ? e : i, + t = this._cache.all = t, + t + } + getDecimalForValue(t) { + return (ya(this._table, t) - this._minPos) / this._tableRange + } + getValueForPixel(t) { + const e = this._offsets + , i = this.getDecimalForPixel(t) / e.factor - e.end; + return ya(this._table, i * this._tableRange + this._minPos, !0) + } + } + va.id = "timeseries", + va.defaults = _a.defaults; + var wa = Object.freeze({ + __proto__: null, + CategoryScale: Zo, + LinearScale: ta, + LogarithmicScale: ia, + RadialLinearScale: da, + TimeScale: _a, + TimeSeriesScale: va + }); + return gn.register(zn, wa, ro, Ko), + gn.helpers = { + ...Ci + }, + gn._adapters = _n, + gn.Animation = ps, + gn.Animations = bs, + gn.animator = a, + gn.controllers = Hs.controllers.items, + gn.DatasetController = Os, + gn.Element = As, + gn.elements = ro, + gn.Interaction = Ii, + gn.layouts = qi, + gn.platforms = us, + gn.Scale = Ns, + gn.Ticks = Ls, + Object.assign(gn, zn, wa, ro, Ko, us), + gn.Chart = gn, + "undefined" != typeof window && (window.Chart = gn), + gn +} +)); diff --git a/src/main/resources/res/d3.js b/src/main/resources/res/d3.js new file mode 100644 index 00000000..16648730 --- /dev/null +++ b/src/main/resources/res/d3.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/src/main/resources/res/functions.js b/src/main/resources/res/functions.js new file mode 100644 index 00000000..93da9ff1 --- /dev/null +++ b/src/main/resources/res/functions.js @@ -0,0 +1,31 @@ + +function getRandomColor() { + const letters = '0123456789ABCDEF'; + var color = '#'; + for (var i = 0; i < 6; i++) { + color += letters[Math.floor(Math.random() * 16)]; + } + return color; +} + +function shadeColor(color, amount) { + return '#' + color.replace(/^#/, '') + .replace(/../g, color => ('0'+Math.min(255, Math.max(0, parseInt(color, 16) + amount)) + .toString(16)) + .substr(-2)); +} + +let resetFlag = 0 +let randomColor = getRandomColor() + +function getColor(single = false) { + if(single) { + return getRandomColor(); + } + if(resetFlag > 1) { + resetFlag = 0; + randomColor = getRandomColor(); + } + resetFlag++; + return randomColor; +} diff --git a/src/main/resources/res/mermaid.js b/src/main/resources/res/mermaid.js new file mode 100644 index 00000000..14ed8f04 --- /dev/null +++ b/src/main/resources/res/mermaid.js @@ -0,0 +1,3 @@ +/*! For license information please see mermaid.min.js.LICENSE.txt */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.mermaid=e():t.mermaid=e()}("undefined"!=typeof self?self:this,(()=>(()=>{var t={2536:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,6],n=[1,7],r=[1,8],i=[1,9],a=[1,16],o=[1,11],s=[1,12],l=[1,13],u=[1,14],h=[1,15],f=[1,27],d=[1,33],p=[1,34],g=[1,35],y=[1,36],m=[1,37],b=[1,72],v=[1,73],_=[1,74],x=[1,75],k=[1,76],w=[1,77],T=[1,78],E=[1,38],C=[1,39],S=[1,40],A=[1,41],M=[1,42],N=[1,43],D=[1,44],O=[1,45],B=[1,46],L=[1,47],I=[1,48],F=[1,49],R=[1,50],P=[1,51],j=[1,52],z=[1,53],Y=[1,54],U=[1,55],$=[1,56],W=[1,57],q=[1,59],H=[1,60],V=[1,61],G=[1,62],X=[1,63],Z=[1,64],Q=[1,65],K=[1,66],J=[1,67],tt=[1,68],et=[1,69],nt=[24,52],rt=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],it=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],at=[1,94],ot=[1,95],st=[1,96],ct=[1,97],lt=[15,24,52],ut=[7,8,9,10,18,22,25,26,27,28],ht=[15,24,43,52],ft=[15,24,43,52,86,87,89,90],dt=[15,43],pt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],gt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:r.setDirection("TB");break;case 5:r.setDirection("BT");break;case 6:r.setDirection("RL");break;case 7:r.setDirection("LR");break;case 11:console.log("open_directive: ",a[s]),r.parseDirective("%%{","open_directive");break;case 12:break;case 13:a[s]=a[s].trim().replace(/'/g,'"'),console.log("arg_directive: ",a[s]),r.parseDirective(a[s],"arg_directive");break;case 14:console.log("close_directive: ",a[s]),r.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:r.setC4Type(a[s-3]);break;case 26:r.setTitle(a[s].substring(6)),this.$=a[s].substring(6);break;case 27:r.setAccDescription(a[s].substring(15)),this.$=a[s].substring(15);break;case 28:this.$=a[s].trim(),r.setTitle(this.$);break;case 29:case 30:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 35:case 36:console.log(a[s-1],JSON.stringify(a[s])),a[s].splice(2,0,"ENTERPRISE"),r.addPersonOrSystemBoundary(...a[s]),this.$=a[s];break;case 37:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystemBoundary(...a[s]),this.$=a[s];break;case 38:console.log(a[s-1],JSON.stringify(a[s])),a[s].splice(2,0,"CONTAINER"),r.addContainerBoundary(...a[s]),this.$=a[s];break;case 39:console.log(a[s-1],JSON.stringify(a[s])),r.addDeploymentNode("node",...a[s]),this.$=a[s];break;case 40:console.log(a[s-1],JSON.stringify(a[s])),r.addDeploymentNode("nodeL",...a[s]),this.$=a[s];break;case 41:console.log(a[s-1],JSON.stringify(a[s])),r.addDeploymentNode("nodeR",...a[s]),this.$=a[s];break;case 42:r.popBoundaryParseStack();break;case 46:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("person",...a[s]),this.$=a[s];break;case 47:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("external_person",...a[s]),this.$=a[s];break;case 48:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("system",...a[s]),this.$=a[s];break;case 49:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("system_db",...a[s]),this.$=a[s];break;case 50:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("system_queue",...a[s]),this.$=a[s];break;case 51:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("external_system",...a[s]),this.$=a[s];break;case 52:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("external_system_db",...a[s]),this.$=a[s];break;case 53:console.log(a[s-1],JSON.stringify(a[s])),r.addPersonOrSystem("external_system_queue",...a[s]),this.$=a[s];break;case 54:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("container",...a[s]),this.$=a[s];break;case 55:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("container_db",...a[s]),this.$=a[s];break;case 56:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("container_queue",...a[s]),this.$=a[s];break;case 57:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("external_container",...a[s]),this.$=a[s];break;case 58:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("external_container_db",...a[s]),this.$=a[s];break;case 59:console.log(a[s-1],JSON.stringify(a[s])),r.addContainer("external_container_queue",...a[s]),this.$=a[s];break;case 60:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("component",...a[s]),this.$=a[s];break;case 61:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("component_db",...a[s]),this.$=a[s];break;case 62:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("component_queue",...a[s]),this.$=a[s];break;case 63:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("external_component",...a[s]),this.$=a[s];break;case 64:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("external_component_db",...a[s]),this.$=a[s];break;case 65:console.log(a[s-1],JSON.stringify(a[s])),r.addComponent("external_component_queue",...a[s]),this.$=a[s];break;case 67:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel",...a[s]),this.$=a[s];break;case 68:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("birel",...a[s]),this.$=a[s];break;case 69:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel_u",...a[s]),this.$=a[s];break;case 70:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel_d",...a[s]),this.$=a[s];break;case 71:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel_l",...a[s]),this.$=a[s];break;case 72:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel_r",...a[s]),this.$=a[s];break;case 73:console.log(a[s-1],JSON.stringify(a[s])),r.addRel("rel_b",...a[s]),this.$=a[s];break;case 74:console.log(a[s-1],JSON.stringify(a[s])),a[s].splice(0,1),r.addRel("rel",...a[s]),this.$=a[s];break;case 75:console.log(a[s-1],JSON.stringify(a[s])),r.updateElStyle("update_el_style",...a[s]),this.$=a[s];break;case 76:console.log(a[s-1],JSON.stringify(a[s])),r.updateRelStyle("update_rel_style",...a[s]),this.$=a[s];break;case 77:console.log(a[s-1],JSON.stringify(a[s])),r.updateLayoutConfig("update_layout_config",...a[s]),this.$=a[s];break;case 78:console.log("PUSH ATTRIBUTE: ",a[s]),this.$=[a[s]];break;case 79:console.log("PUSH ATTRIBUTE: ",a[s-1]),a[s].unshift(a[s-1]),this.$=a[s];break;case 80:case 82:this.$=a[s].trim();break;case 81:console.log("kv: ",a[s-1],a[s]);let t={};t[a[s-1].trim()]=a[s].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:e,8:n,9:r,10:i,11:5,12:10,18:a,22:o,25:s,26:l,27:u,28:h},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:n,9:r,10:i,11:5,12:10,18:a,22:o,25:s,26:l,27:u,28:h},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:f},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:d,33:p,34:g,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{23:79,29:29,30:30,31:31,32:d,33:p,34:g,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{23:80,29:29,30:30,31:31,32:d,33:p,34:g,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{23:81,29:29,30:30,31:31,32:d,33:p,34:g,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{23:82,29:29,30:30,31:31,32:d,33:p,34:g,36:y,38:m,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(nt,[2,20],{53:32,39:58,40:70,42:71,30:87,44:b,46:v,47:_,48:x,49:k,50:w,51:T,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et}),t(nt,[2,21]),t(rt,[2,23],{15:[1,88]}),t(nt,[2,43],{15:[1,89]}),t(it,[2,26]),t(it,[2,27]),{35:[1,90]},{37:[1,91]},t(it,[2,30]),{45:92,85:93,86:at,87:ot,89:st,90:ct},{45:98,85:93,86:at,87:ot,89:st,90:ct},{45:99,85:93,86:at,87:ot,89:st,90:ct},{45:100,85:93,86:at,87:ot,89:st,90:ct},{45:101,85:93,86:at,87:ot,89:st,90:ct},{45:102,85:93,86:at,87:ot,89:st,90:ct},{45:103,85:93,86:at,87:ot,89:st,90:ct},{45:104,85:93,86:at,87:ot,89:st,90:ct},{45:105,85:93,86:at,87:ot,89:st,90:ct},{45:106,85:93,86:at,87:ot,89:st,90:ct},{45:107,85:93,86:at,87:ot,89:st,90:ct},{45:108,85:93,86:at,87:ot,89:st,90:ct},{45:109,85:93,86:at,87:ot,89:st,90:ct},{45:110,85:93,86:at,87:ot,89:st,90:ct},{45:111,85:93,86:at,87:ot,89:st,90:ct},{45:112,85:93,86:at,87:ot,89:st,90:ct},{45:113,85:93,86:at,87:ot,89:st,90:ct},{45:114,85:93,86:at,87:ot,89:st,90:ct},{45:115,85:93,86:at,87:ot,89:st,90:ct},{45:116,85:93,86:at,87:ot,89:st,90:ct},t(lt,[2,66]),{45:117,85:93,86:at,87:ot,89:st,90:ct},{45:118,85:93,86:at,87:ot,89:st,90:ct},{45:119,85:93,86:at,87:ot,89:st,90:ct},{45:120,85:93,86:at,87:ot,89:st,90:ct},{45:121,85:93,86:at,87:ot,89:st,90:ct},{45:122,85:93,86:at,87:ot,89:st,90:ct},{45:123,85:93,86:at,87:ot,89:st,90:ct},{45:124,85:93,86:at,87:ot,89:st,90:ct},{45:125,85:93,86:at,87:ot,89:st,90:ct},{45:126,85:93,86:at,87:ot,89:st,90:ct},{45:127,85:93,86:at,87:ot,89:st,90:ct},{30:128,39:58,40:70,42:71,44:b,46:v,47:_,48:x,49:k,50:w,51:T,53:32,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et},{15:[1,130],43:[1,129]},{45:131,85:93,86:at,87:ot,89:st,90:ct},{45:132,85:93,86:at,87:ot,89:st,90:ct},{45:133,85:93,86:at,87:ot,89:st,90:ct},{45:134,85:93,86:at,87:ot,89:st,90:ct},{45:135,85:93,86:at,87:ot,89:st,90:ct},{45:136,85:93,86:at,87:ot,89:st,90:ct},{45:137,85:93,86:at,87:ot,89:st,90:ct},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(ut,[2,9]),{14:142,21:f},{21:[2,13]},{1:[2,15]},t(nt,[2,22]),t(rt,[2,24],{31:31,29:143,32:d,33:p,34:g,36:y,38:m}),t(nt,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:d,33:p,34:g,36:y,38:m,44:b,46:v,47:_,48:x,49:k,50:w,51:T,54:E,55:C,56:S,57:A,58:M,59:N,60:D,61:O,62:B,63:L,64:I,65:F,66:R,67:P,68:j,69:z,70:Y,71:U,72:$,73:W,74:q,75:H,76:V,77:G,78:X,79:Z,80:Q,81:K,82:J,83:tt,84:et}),t(it,[2,28]),t(it,[2,29]),t(lt,[2,46]),t(ht,[2,78],{85:93,45:145,86:at,87:ot,89:st,90:ct}),t(ft,[2,80]),{88:[1,146]},t(ft,[2,82]),t(ft,[2,83]),t(lt,[2,47]),t(lt,[2,48]),t(lt,[2,49]),t(lt,[2,50]),t(lt,[2,51]),t(lt,[2,52]),t(lt,[2,53]),t(lt,[2,54]),t(lt,[2,55]),t(lt,[2,56]),t(lt,[2,57]),t(lt,[2,58]),t(lt,[2,59]),t(lt,[2,60]),t(lt,[2,61]),t(lt,[2,62]),t(lt,[2,63]),t(lt,[2,64]),t(lt,[2,65]),t(lt,[2,67]),t(lt,[2,68]),t(lt,[2,69]),t(lt,[2,70]),t(lt,[2,71]),t(lt,[2,72]),t(lt,[2,73]),t(lt,[2,74]),t(lt,[2,75]),t(lt,[2,76]),t(lt,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(dt,[2,35]),t(dt,[2,36]),t(dt,[2,37]),t(dt,[2,38]),t(dt,[2,39]),t(dt,[2,40]),t(dt,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(rt,[2,25]),t(nt,[2,45]),t(ht,[2,79]),t(ft,[2,81]),t(lt,[2,31]),t(lt,[2,42]),t(pt,[2,32]),t(pt,[2,33],{15:[1,152]}),t(ut,[2,10]),t(pt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},yt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),console.log("begin person_ext"),55;case 28:return this.begin("person"),console.log("begin person"),54;case 29:return this.begin("system_ext_queue"),console.log("begin system_ext_queue"),61;case 30:return this.begin("system_ext_db"),console.log("begin system_ext_db"),60;case 31:return this.begin("system_ext"),console.log("begin system_ext"),59;case 32:return this.begin("system_queue"),console.log("begin system_queue"),58;case 33:return this.begin("system_db"),console.log("begin system_db"),57;case 34:return this.begin("system"),console.log("begin system"),56;case 35:return this.begin("boundary"),console.log("begin boundary"),47;case 36:return this.begin("enterprise_boundary"),console.log("begin enterprise_boundary"),44;case 37:return this.begin("system_boundary"),console.log("begin system_boundary"),46;case 38:return this.begin("container_ext_queue"),console.log("begin container_ext_queue"),67;case 39:return this.begin("container_ext_db"),console.log("begin container_ext_db"),66;case 40:return this.begin("container_ext"),console.log("begin container_ext"),65;case 41:return this.begin("container_queue"),console.log("begin container_queue"),64;case 42:return this.begin("container_db"),console.log("begin container_db"),63;case 43:return this.begin("container"),console.log("begin container"),62;case 44:return this.begin("container_boundary"),console.log("begin container_boundary"),48;case 45:return this.begin("component_ext_queue"),console.log("begin component_ext_queue"),73;case 46:return this.begin("component_ext_db"),console.log("begin component_ext_db"),72;case 47:return this.begin("component_ext"),console.log("begin component_ext"),71;case 48:return this.begin("component_queue"),console.log("begin component_queue"),70;case 49:return this.begin("component_db"),console.log("begin component_db"),69;case 50:return this.begin("component"),console.log("begin component"),68;case 51:case 52:return this.begin("node"),console.log("begin node"),49;case 53:return this.begin("node_l"),console.log("begin node_l"),50;case 54:return this.begin("node_r"),console.log("begin node_r"),51;case 55:return this.begin("rel"),console.log("begin rel"),74;case 56:return this.begin("birel"),console.log("begin birel"),75;case 57:case 58:return this.begin("rel_u"),console.log("begin rel_u"),76;case 59:case 60:return this.begin("rel_d"),console.log("begin rel_d"),77;case 61:case 62:return this.begin("rel_l"),console.log("begin rel_l"),78;case 63:case 64:return this.begin("rel_r"),console.log("begin rel_r"),79;case 65:return this.begin("rel_b"),console.log("begin rel_b"),80;case 66:return this.begin("rel_index"),console.log("begin rel_index"),81;case 67:return this.begin("update_el_style"),console.log("begin update_el_style"),82;case 68:return this.begin("update_rel_style"),console.log("begin update_rel_style"),83;case 69:return this.begin("update_layout_config"),console.log("begin update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return console.log("begin attribute with ATTRIBUTE_EMPTY"),this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:console.log("begin attribute"),this.begin("attribute");break;case 73:console.log("STOP attribute"),this.popState(),console.log("STOP diagram"),this.popState();break;case 74:return console.log(",,"),90;case 75:console.log(",");break;case 76:return console.log("ATTRIBUTE_EMPTY"),90;case 77:console.log("begin string"),this.begin("string");break;case 78:console.log("STOP string"),this.popState();break;case 79:return console.log("STR"),"STR";case 80:console.log("begin string_kv"),this.begin("string_kv");break;case 81:return console.log("STR_KEY"),this.begin("string_kv_key"),"STR_KEY";case 82:console.log("begin string_kv_value"),this.popState(),this.begin("string_kv_value");break;case 83:return console.log("STR_VALUE"),"STR_VALUE";case 84:console.log("STOP string_kv_value"),this.popState(),this.popState();break;case 85:return console.log("not STR"),"STR";case 86:return console.log("begin boundary block"),"LBRACE";case 87:return console.log("STOP boundary block"),"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};function mt(){this.yy={}}return gt.lexer=yt,mt.prototype=gt,gt.Parser=mt,new mt}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(555).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},1362:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,3],n=[1,7],r=[1,8],i=[1,9],a=[1,10],o=[1,13],s=[1,12],c=[1,16,25],l=[1,20],u=[1,31],h=[1,32],f=[1,33],d=[1,35],p=[1,38],g=[1,36],y=[1,37],m=[1,39],b=[1,40],v=[1,41],_=[1,42],x=[1,45],k=[1,46],w=[1,47],T=[1,48],E=[16,25],C=[1,62],S=[1,63],A=[1,64],M=[1,65],N=[1,66],D=[1,67],O=[16,25,32,44,45,53,56,57,58,59,60,61,66,68],B=[16,25,30,32,44,45,49,53,56,57,58,59,60,61,66,68,83,84,85,86],L=[5,8,9,10,11,16,19,23,25],I=[53,83,84,85,86],F=[53,60,61,83,84,85,86],R=[53,56,57,58,59,83,84,85,86],P=[16,25,32],j=[1,99],z={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,acc_title:38,acc_title_value:39,acc_descr:40,acc_descr_value:41,acc_descr_multiline_value:42,CLASS:43,STYLE_SEPARATOR:44,STRUCT_START:45,members:46,STRUCT_STOP:47,ANNOTATION_START:48,ANNOTATION_END:49,MEMBER:50,SEPARATOR:51,relation:52,STR:53,relationType:54,lineType:55,AGGREGATION:56,EXTENSION:57,COMPOSITION:58,DEPENDENCY:59,LINE:60,DOTTED_LINE:61,CALLBACK:62,LINK:63,LINK_TARGET:64,CLICK:65,CALLBACK_NAME:66,CALLBACK_ARGS:67,HREF:68,CSSCLASS:69,commentToken:70,textToken:71,graphCodeTokens:72,textNoTagsToken:73,TAGSTART:74,TAGEND:75,"==":76,"--":77,PCT:78,DEFAULT:79,SPACE:80,MINUS:81,keywords:82,UNICODE_TEXT:83,NUM:84,ALPHA:85,BQUOTE_STR:86,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",38:"acc_title",39:"acc_title_value",40:"acc_descr",41:"acc_descr_value",42:"acc_descr_multiline_value",43:"CLASS",44:"STYLE_SEPARATOR",45:"STRUCT_START",47:"STRUCT_STOP",48:"ANNOTATION_START",49:"ANNOTATION_END",50:"MEMBER",51:"SEPARATOR",53:"STR",56:"AGGREGATION",57:"EXTENSION",58:"COMPOSITION",59:"DEPENDENCY",60:"LINE",61:"DOTTED_LINE",62:"CALLBACK",63:"LINK",64:"LINK_TARGET",65:"CLICK",66:"CALLBACK_NAME",67:"CALLBACK_ARGS",68:"HREF",69:"CSSCLASS",72:"graphCodeTokens",74:"TAGSTART",75:"TAGEND",76:"==",77:"--",78:"PCT",79:"DEFAULT",80:"SPACE",81:"MINUS",82:"keywords",83:"UNICODE_TEXT",84:"NUM",85:"ALPHA",86:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[46,1],[46,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[52,3],[52,2],[52,2],[52,1],[54,1],[54,1],[54,1],[54,1],[55,1],[55,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[70,1],[70,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[73,1],[73,1],[73,1],[73,1],[28,1],[28,1],[28,1],[29,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setDirection("TB");break;case 6:r.setDirection("BT");break;case 7:r.setDirection("RL");break;case 8:r.setDirection("LR");break;case 12:r.parseDirective("%%{","open_directive");break;case 13:r.parseDirective(a[s],"type_directive");break;case 14:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 15:r.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=a[s];break;case 22:this.$=a[s-1]+a[s];break;case 23:case 24:this.$=a[s-1]+"~"+a[s];break;case 25:r.addRelation(a[s]);break;case 26:a[s-1].title=r.cleanupLabel(a[s]),r.addRelation(a[s-1]);break;case 34:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 35:case 36:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 37:r.addClass(a[s]);break;case 38:r.addClass(a[s-2]),r.setCssClass(a[s-2],a[s]);break;case 39:r.addClass(a[s-3]),r.addMembers(a[s-3],a[s-1]);break;case 40:r.addClass(a[s-5]),r.setCssClass(a[s-5],a[s-3]),r.addMembers(a[s-5],a[s-1]);break;case 41:r.addAnnotation(a[s],a[s-2]);break;case 42:this.$=[a[s]];break;case 43:a[s].push(a[s-1]),this.$=a[s];break;case 44:case 46:case 47:break;case 45:r.addMember(a[s-1],r.cleanupLabel(a[s]));break;case 48:this.$={id1:a[s-2],id2:a[s],relation:a[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:a[s-3],id2:a[s],relation:a[s-1],relationTitle1:a[s-2],relationTitle2:"none"};break;case 50:this.$={id1:a[s-3],id2:a[s],relation:a[s-2],relationTitle1:"none",relationTitle2:a[s-1]};break;case 51:this.$={id1:a[s-4],id2:a[s],relation:a[s-2],relationTitle1:a[s-3],relationTitle2:a[s-1]};break;case 52:this.$={type1:a[s-2],type2:a[s],lineType:a[s-1]};break;case 53:this.$={type1:"none",type2:a[s],lineType:a[s-1]};break;case 54:this.$={type1:a[s-1],type2:"none",lineType:a[s]};break;case 55:this.$={type1:"none",type2:"none",lineType:a[s]};break;case 56:this.$=r.relationType.AGGREGATION;break;case 57:this.$=r.relationType.EXTENSION;break;case 58:this.$=r.relationType.COMPOSITION;break;case 59:this.$=r.relationType.DEPENDENCY;break;case 60:this.$=r.lineType.LINE;break;case 61:this.$=r.lineType.DOTTED_LINE;break;case 62:case 68:this.$=a[s-2],r.setClickEvent(a[s-1],a[s]);break;case 63:case 69:this.$=a[s-3],r.setClickEvent(a[s-2],a[s-1]),r.setTooltip(a[s-2],a[s]);break;case 64:case 72:this.$=a[s-2],r.setLink(a[s-1],a[s]);break;case 65:case 73:this.$=a[s-3],r.setLink(a[s-2],a[s-1],a[s]);break;case 66:case 74:this.$=a[s-3],r.setLink(a[s-2],a[s-1]),r.setTooltip(a[s-2],a[s]);break;case 67:case 75:this.$=a[s-4],r.setLink(a[s-3],a[s-2],a[s]),r.setTooltip(a[s-3],a[s-1]);break;case 70:this.$=a[s-3],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 71:this.$=a[s-4],r.setClickEvent(a[s-3],a[s-2],a[s-1]),r.setTooltip(a[s-3],a[s]);break;case 76:r.setCssClass(a[s-1],a[s])}},table:[{3:1,4:2,5:e,6:4,7:5,8:n,9:r,10:i,11:a,12:6,13:11,19:o,23:s},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:e,6:4,7:5,8:n,9:r,10:i,11:a,12:6,13:11,19:o,23:s},{1:[2,9]},t(c,[2,5]),t(c,[2,6]),t(c,[2,7]),t(c,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:l},t([17,22],[2,13]),{6:30,7:29,8:n,9:r,10:i,11:a,13:11,19:o,24:21,26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:u,40:h,42:f,43:d,48:p,50:g,51:y,62:m,63:b,65:v,69:_,83:x,84:k,85:w,86:T},{16:[1,49]},{18:50,21:[1,51]},{16:[2,15]},{25:[1,52]},{16:[1,53],25:[2,17]},t(E,[2,25],{32:[1,54]}),t(E,[2,27]),t(E,[2,28]),t(E,[2,29]),t(E,[2,30]),t(E,[2,31]),t(E,[2,32]),t(E,[2,33]),{39:[1,55]},{41:[1,56]},t(E,[2,36]),t(E,[2,44],{52:57,54:60,55:61,32:[1,59],53:[1,58],56:C,57:S,58:A,59:M,60:N,61:D}),{27:68,28:43,29:44,83:x,84:k,85:w,86:T},t(E,[2,46]),t(E,[2,47]),{28:69,83:x,84:k,85:w},{27:70,28:43,29:44,83:x,84:k,85:w,86:T},{27:71,28:43,29:44,83:x,84:k,85:w,86:T},{27:72,28:43,29:44,83:x,84:k,85:w,86:T},{53:[1,73]},t(O,[2,20],{28:43,29:44,27:74,30:[1,75],83:x,84:k,85:w,86:T}),t(O,[2,21],{30:[1,76]}),t(B,[2,90]),t(B,[2,91]),t(B,[2,92]),t([16,25,30,32,44,45,53,56,57,58,59,60,61,66,68],[2,93]),t(L,[2,10]),{15:77,22:l},{22:[2,14]},{1:[2,16]},{6:30,7:29,8:n,9:r,10:i,11:a,13:11,19:o,24:78,25:[2,18],26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:u,40:h,42:f,43:d,48:p,50:g,51:y,62:m,63:b,65:v,69:_,83:x,84:k,85:w,86:T},t(E,[2,26]),t(E,[2,34]),t(E,[2,35]),{27:79,28:43,29:44,53:[1,80],83:x,84:k,85:w,86:T},{52:81,54:60,55:61,56:C,57:S,58:A,59:M,60:N,61:D},t(E,[2,45]),{55:82,60:N,61:D},t(I,[2,55],{54:83,56:C,57:S,58:A,59:M}),t(F,[2,56]),t(F,[2,57]),t(F,[2,58]),t(F,[2,59]),t(R,[2,60]),t(R,[2,61]),t(E,[2,37],{44:[1,84],45:[1,85]}),{49:[1,86]},{53:[1,87]},{53:[1,88]},{66:[1,89],68:[1,90]},{28:91,83:x,84:k,85:w},t(O,[2,22]),t(O,[2,23]),t(O,[2,24]),{16:[1,92]},{25:[2,19]},t(P,[2,48]),{27:93,28:43,29:44,83:x,84:k,85:w,86:T},{27:94,28:43,29:44,53:[1,95],83:x,84:k,85:w,86:T},t(I,[2,54],{54:96,56:C,57:S,58:A,59:M}),t(I,[2,53]),{28:97,83:x,84:k,85:w},{46:98,50:j},{27:100,28:43,29:44,83:x,84:k,85:w,86:T},t(E,[2,62],{53:[1,101]}),t(E,[2,64],{53:[1,103],64:[1,102]}),t(E,[2,68],{53:[1,104],67:[1,105]}),t(E,[2,72],{53:[1,107],64:[1,106]}),t(E,[2,76]),t(L,[2,11]),t(P,[2,50]),t(P,[2,49]),{27:108,28:43,29:44,83:x,84:k,85:w,86:T},t(I,[2,52]),t(E,[2,38],{45:[1,109]}),{47:[1,110]},{46:111,47:[2,42],50:j},t(E,[2,41]),t(E,[2,63]),t(E,[2,65]),t(E,[2,66],{64:[1,112]}),t(E,[2,69]),t(E,[2,70],{53:[1,113]}),t(E,[2,73]),t(E,[2,74],{64:[1,114]}),t(P,[2,51]),{46:115,50:j},t(E,[2,39]),{47:[2,43]},t(E,[2,67]),t(E,[2,71]),t(E,[2,75]),{47:[1,116]},t(E,[2,40])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],51:[2,14],52:[2,16],78:[2,19],111:[2,43]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},Y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 26:break;case 11:return this.begin("acc_title"),38;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),40;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 36:case 39:case 42:case 45:case 48:case 51:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),45;case 23:return"EOF_IN_STRUCT";case 24:return"OPEN_IN_STRUCT";case 25:return this.popState(),47;case 27:return"MEMBER";case 28:return 43;case 29:return 69;case 30:return 62;case 31:return 63;case 32:return 65;case 33:return 48;case 34:return 49;case 35:this.begin("generic");break;case 37:return"GENERICTYPE";case 38:this.begin("string");break;case 40:return"STR";case 41:this.begin("bqstring");break;case 43:return"BQUOTE_STR";case 44:this.begin("href");break;case 46:return 68;case 47:this.begin("callback_name");break;case 49:this.popState(),this.begin("callback_args");break;case 50:return 66;case 52:return 67;case 53:case 54:case 55:case 56:return 64;case 57:case 58:return 57;case 59:case 60:return 59;case 61:return 58;case 62:return 56;case 63:return 60;case 64:return 61;case 65:return 32;case 66:return 44;case 67:return 81;case 68:return"DOT";case 69:return"PLUS";case 70:return 78;case 71:case 72:return"EQUALS";case 73:return 85;case 74:return"PUNCTUATION";case 75:return 84;case 76:return 83;case 77:return 80;case 78:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[51,52],inclusive:!1},callback_name:{rules:[48,49,50],inclusive:!1},href:{rules:[45,46],inclusive:!1},struct:{rules:[23,24,25,26,27],inclusive:!1},generic:{rules:[36,37],inclusive:!1},bqstring:{rules:[42,43],inclusive:!1},string:{rules:[39,40],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,28,29,30,31,32,33,34,35,38,41,44,47,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],inclusive:!0}}};function U(){this.yy={}}return z.lexer=Y,U.prototype=z,z.Parser=U,new U}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(8218).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},5890:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,5],r=[6,9,11,23,25,27,29,30,49],i=[1,17],a=[1,18],o=[1,19],s=[1,20],c=[1,21],l=[1,24],u=[1,29],h=[1,30],f=[1,31],d=[1,32],p=[6,9,11,15,20,23,25,27,29,30,42,43,44,45,49],g=[1,45],y=[30,46,47],m=[4,6,9,11,23,25,27,29,30,49],b=[42,43,44,45],v=[22,37],_=[1,64],x={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,".":31,attribute:32,attributeType:33,attributeName:34,attributeKeyType:35,attributeComment:36,ATTRIBUTE_WORD:37,ATTRIBUTE_KEY:38,COMMENT:39,cardinality:40,relType:41,ZERO_OR_ONE:42,ZERO_OR_MORE:43,ONE_OR_MORE:44,ONLY_ONE:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,open_directive:49,type_directive:50,arg_directive:51,close_directive:52,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:".",37:"ATTRIBUTE_WORD",38:"ATTRIBUTE_KEY",39:"COMMENT",42:"ZERO_OR_ONE",43:"ZERO_OR_MORE",44:"ONE_OR_MORE",45:"ONLY_ONE",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,3],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:case 20:case 28:case 29:case 30:case 40:this.$=a[s];break;case 12:r.addEntity(a[s-4]),r.addEntity(a[s-2]),r.addRelationship(a[s-4],a[s],a[s-2],a[s-3]);break;case 13:r.addEntity(a[s-3]),r.addAttributes(a[s-3],a[s-1]);break;case 14:r.addEntity(a[s-2]);break;case 15:r.addEntity(a[s]);break;case 16:case 17:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 18:case 19:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 21:this.$=a[s-2]+a[s-1]+a[s];break;case 22:this.$=[a[s]];break;case 23:a[s].push(a[s-1]),this.$=a[s];break;case 24:this.$={attributeType:a[s-1],attributeName:a[s]};break;case 25:this.$={attributeType:a[s-2],attributeName:a[s-1],attributeKeyType:a[s]};break;case 26:this.$={attributeType:a[s-2],attributeName:a[s-1],attributeComment:a[s]};break;case 27:this.$={attributeType:a[s-3],attributeName:a[s-2],attributeKeyType:a[s-1],attributeComment:a[s]};break;case 31:case 39:this.$=a[s].replace(/"/g,"");break;case 32:this.$={cardA:a[s],relType:a[s-1],cardB:a[s-2]};break;case 33:this.$=r.Cardinality.ZERO_OR_ONE;break;case 34:this.$=r.Cardinality.ZERO_OR_MORE;break;case 35:this.$=r.Cardinality.ONE_OR_MORE;break;case 36:this.$=r.Cardinality.ONLY_ONE;break;case 37:this.$=r.Identification.NON_IDENTIFYING;break;case 38:this.$=r.Identification.IDENTIFYING;break;case 41:r.parseDirective("%%{","open_directive");break;case 42:r.parseDirective(a[s],"type_directive");break;case 43:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 44:r.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,49:n},{1:[3]},t(r,[2,3],{5:6}),{3:7,4:e,7:3,12:4,49:n},{13:8,50:[1,9]},{50:[2,41]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:i,25:a,27:o,29:s,30:c,49:n},{1:[2,2]},{14:22,15:[1,23],52:l},t([15,52],[2,42]),t(r,[2,8],{1:[2,1]}),t(r,[2,4]),{7:15,10:25,12:4,17:16,23:i,25:a,27:o,29:s,30:c,49:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,11]),t(r,[2,15],{18:26,40:28,20:[1,27],42:u,43:h,44:f,45:d}),{24:[1,33]},{26:[1,34]},{28:[1,35]},t(r,[2,19]),t(p,[2,20],{31:[1,36]}),{11:[1,37]},{16:38,51:[1,39]},{11:[2,44]},t(r,[2,5]),{17:40,30:c},{21:41,22:[1,42],32:43,33:44,37:g},{41:46,46:[1,47],47:[1,48]},t(y,[2,33]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(r,[2,16]),t(r,[2,17]),t(r,[2,18]),{17:49,30:c},t(m,[2,9]),{14:50,52:l},{52:[2,43]},{15:[1,51]},{22:[1,52]},t(r,[2,14]),{21:53,22:[2,22],32:43,33:44,37:g},{34:54,37:[1,55]},{37:[2,28]},{40:56,42:u,43:h,44:f,45:d},t(b,[2,37]),t(b,[2,38]),t(p,[2,21]),{11:[1,57]},{19:58,30:[1,60],48:[1,59]},t(r,[2,13]),{22:[2,23]},t(v,[2,24],{35:61,36:62,38:[1,63],39:_}),t([22,37,38,39],[2,29]),{30:[2,32]},t(m,[2,10]),t(r,[2,12]),t(r,[2,39]),t(r,[2,40]),t(v,[2,25],{36:65,39:_}),t(v,[2,26]),t([22,37,39],[2,30]),t(v,[2,31]),t(v,[2,27])],defaultActions:{5:[2,41],7:[2,2],24:[2,44],39:[2,43],45:[2,28],53:[2,23],56:[2,32]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},k={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),49;case 8:return this.begin("type_directive"),50;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),52;case 11:return 51;case 12:case 13:case 15:case 20:case 24:break;case 14:return 11;case 16:return 9;case 17:return 48;case 18:return 4;case 19:return this.begin("block"),20;case 21:return 38;case 22:return 37;case 23:return 39;case 25:return this.popState(),22;case 26:case 39:return e.yytext[0];case 27:case 31:return 42;case 28:case 32:return 43;case 29:case 33:return 44;case 30:return 45;case 34:case 36:case 37:return 46;case 35:return 47;case 38:return 30;case 40:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK))\b)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\|o\b)/i,/^(?:\}o\b)/i,/^(?:\}\|)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[20,21,22,23,24,25,26],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40],inclusive:!0}}};function w(){this.yy={}}return x.lexer=k,w.prototype=x,x.Parser=w,new w}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(8009).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},3602:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,9],n=[1,7],r=[1,6],i=[1,8],a=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],o=[2,10],s=[1,20],c=[1,21],l=[1,22],u=[1,23],h=[1,30],f=[1,32],d=[1,33],p=[1,34],g=[1,62],y=[1,48],m=[1,52],b=[1,36],v=[1,37],_=[1,38],x=[1,39],k=[1,40],w=[1,56],T=[1,63],E=[1,51],C=[1,53],S=[1,55],A=[1,59],M=[1,60],N=[1,41],D=[1,42],O=[1,43],B=[1,44],L=[1,61],I=[1,50],F=[1,54],R=[1,57],P=[1,58],j=[1,49],z=[1,66],Y=[1,71],U=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$=[1,75],W=[1,74],q=[1,76],H=[20,21,23,81,82],V=[1,99],G=[1,104],X=[1,107],Z=[1,108],Q=[1,101],K=[1,106],J=[1,109],tt=[1,102],et=[1,114],nt=[1,113],rt=[1,103],it=[1,105],at=[1,110],ot=[1,111],st=[1,112],ct=[1,115],lt=[20,21,22,23,81,82],ut=[20,21,22,23,53,81,82],ht=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],ft=[20,21,23],dt=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],pt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],gt=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],yt=[1,149],mt=[1,157],bt=[1,158],vt=[1,159],_t=[1,160],xt=[1,144],kt=[1,145],wt=[1,141],Tt=[1,152],Et=[1,153],Ct=[1,154],St=[1,155],At=[1,156],Mt=[1,161],Nt=[1,162],Dt=[1,147],Ot=[1,150],Bt=[1,146],Lt=[1,143],It=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Ft=[1,165],Rt=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],Pt=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],jt=[12,21,22,24],zt=[22,106],Yt=[1,250],Ut=[1,245],$t=[1,246],Wt=[1,254],qt=[1,251],Ht=[1,248],Vt=[1,247],Gt=[1,249],Xt=[1,252],Zt=[1,253],Qt=[1,255],Kt=[1,273],Jt=[20,21,23,106],te=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.parseDirective("%%{","open_directive");break;case 6:r.parseDirective(a[s],"type_directive");break;case 7:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 8:r.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:a[s]!==[]&&a[s-1].push(a[s]),this.$=a[s-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=a[s];break;case 19:r.setDirection("TB"),this.$="TB";break;case 20:r.setDirection(a[s-1]),this.$=a[s-1];break;case 35:this.$=a[s-1].nodes;break;case 41:this.$=r.addSubGraph(a[s-6],a[s-1],a[s-4]);break;case 42:this.$=r.addSubGraph(a[s-3],a[s-1],a[s-3]);break;case 43:this.$=r.addSubGraph(void 0,a[s-1],void 0);break;case 45:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 46:case 47:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 51:r.addLink(a[s-2].stmt,a[s],a[s-1]),this.$={stmt:a[s],nodes:a[s].concat(a[s-2].nodes)};break;case 52:r.addLink(a[s-3].stmt,a[s-1],a[s-2]),this.$={stmt:a[s-1],nodes:a[s-1].concat(a[s-3].nodes)};break;case 53:this.$={stmt:a[s-1],nodes:a[s-1]};break;case 54:this.$={stmt:a[s],nodes:a[s]};break;case 55:case 123:case 125:this.$=[a[s]];break;case 56:this.$=a[s-4].concat(a[s]);break;case 57:this.$=[a[s-2]],r.setClass(a[s-2],a[s]);break;case 58:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"square");break;case 59:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"doublecircle");break;case 60:this.$=a[s-5],r.addVertex(a[s-5],a[s-2],"circle");break;case 61:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"ellipse");break;case 62:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"stadium");break;case 63:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"subroutine");break;case 64:this.$=a[s-7],r.addVertex(a[s-7],a[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[a[s-5],a[s-3]]]));break;case 65:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"cylinder");break;case 66:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"round");break;case 67:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"diamond");break;case 68:this.$=a[s-5],r.addVertex(a[s-5],a[s-2],"hexagon");break;case 69:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"odd");break;case 70:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"trapezoid");break;case 71:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"inv_trapezoid");break;case 72:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"lean_right");break;case 73:this.$=a[s-3],r.addVertex(a[s-3],a[s-1],"lean_left");break;case 74:this.$=a[s],r.addVertex(a[s]);break;case 75:a[s-1].text=a[s],this.$=a[s-1];break;case 76:case 77:a[s-2].text=a[s-1],this.$=a[s-2];break;case 79:var c=r.destructLink(a[s],a[s-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:a[s-1]};break;case 80:c=r.destructLink(a[s]),this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=a[s-1];break;case 83:case 97:case 153:case 151:this.$=a[s-1]+""+a[s];break;case 98:case 99:this.$=a[s-4],r.addClass(a[s-2],a[s]);break;case 100:this.$=a[s-4],r.setClass(a[s-2],a[s]);break;case 101:case 109:this.$=a[s-1],r.setClickEvent(a[s-1],a[s]);break;case 102:case 110:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-2]),r.setTooltip(a[s-3],a[s]);break;case 103:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 104:this.$=a[s-4],r.setClickEvent(a[s-4],a[s-3],a[s-2]),r.setTooltip(a[s-4],a[s]);break;case 105:case 111:this.$=a[s-1],r.setLink(a[s-1],a[s]);break;case 106:case 112:this.$=a[s-3],r.setLink(a[s-3],a[s-2]),r.setTooltip(a[s-3],a[s]);break;case 107:case 113:this.$=a[s-3],r.setLink(a[s-3],a[s-2],a[s]);break;case 108:case 114:this.$=a[s-5],r.setLink(a[s-5],a[s-4],a[s]),r.setTooltip(a[s-5],a[s-2]);break;case 115:this.$=a[s-4],r.addVertex(a[s-2],void 0,void 0,a[s]);break;case 116:case 118:this.$=a[s-4],r.updateLink(a[s-2],a[s]);break;case 117:this.$=a[s-4],r.updateLink([a[s-2]],a[s]);break;case 119:this.$=a[s-8],r.updateLinkInterpolate([a[s-6]],a[s-2]),r.updateLink([a[s-6]],a[s]);break;case 120:this.$=a[s-8],r.updateLinkInterpolate(a[s-6],a[s-2]),r.updateLink(a[s-6],a[s]);break;case 121:this.$=a[s-6],r.updateLinkInterpolate([a[s-4]],a[s]);break;case 122:this.$=a[s-6],r.updateLinkInterpolate(a[s-4],a[s]);break;case 124:case 126:a[s-2].push(a[s]),this.$=a[s-2];break;case 128:this.$=a[s-1]+a[s];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:n,22:r,24:i},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:n,22:r,24:i},t(a,o,{17:11}),{7:12,13:[1,13]},{16:14,21:n,22:r,24:i},{16:15,21:n,22:r,24:i},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:31,44:f,46:d,48:p,50:35,51:45,52:g,54:46,66:y,67:m,86:b,87:v,88:_,89:x,90:k,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,118:N,119:D,120:O,121:B,122:L,123:I,124:F,125:R,126:P,127:j},{8:64,10:[1,65],15:z},t([10,15],[2,6]),t(a,[2,17]),t(a,[2,18]),t(a,[2,19]),{20:[1,68],21:[1,69],22:Y,27:67,30:70},t(U,[2,11]),t(U,[2,12]),t(U,[2,13]),t(U,[2,14]),t(U,[2,15]),t(U,[2,16]),{9:72,20:$,21:W,23:q,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:$,21:W,23:q},{9:81,20:$,21:W,23:q},{9:82,20:$,21:W,23:q},{9:83,20:$,21:W,23:q},{9:84,20:$,21:W,23:q},{9:86,20:$,21:W,22:[1,85],23:q},t(U,[2,44]),{45:[1,87]},{47:[1,88]},t(U,[2,47]),t(H,[2,54],{30:89,22:Y}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:V,52:G,66:X,67:Z,84:[1,97],91:Q,97:96,98:[1,94],100:[1,95],105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(U,[2,158]),t(U,[2,159]),t(U,[2,160]),t(U,[2,161]),t(lt,[2,55],{53:[1,116]}),t(ut,[2,74],{116:129,40:[1,117],52:g,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:y,67:m,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:w,95:T,105:E,106:C,109:S,111:A,112:M,122:L,123:I,124:F,125:R,126:P,127:j}),t(ht,[2,150]),t(ht,[2,175]),t(ht,[2,176]),t(ht,[2,177]),t(ht,[2,178]),t(ht,[2,179]),t(ht,[2,180]),t(ht,[2,181]),t(ht,[2,182]),t(ht,[2,183]),t(ht,[2,184]),t(ht,[2,185]),t(ht,[2,186]),t(ht,[2,187]),t(ht,[2,188]),t(ht,[2,189]),t(ht,[2,190]),{9:130,20:$,21:W,23:q},{11:131,14:[1,132]},t(ft,[2,8]),t(a,[2,20]),t(a,[2,26]),t(a,[2,27]),{21:[1,133]},t(dt,[2,34],{30:134,22:Y}),t(U,[2,35]),{50:135,51:45,52:g,54:46,66:y,67:m,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,122:L,123:I,124:F,125:R,126:P,127:j},t(pt,[2,48]),t(pt,[2,49]),t(pt,[2,50]),t(gt,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:yt,24:mt,26:bt,38:vt,39:139,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),t(U,[2,36]),t(U,[2,37]),t(U,[2,38]),t(U,[2,39]),t(U,[2,40]),{22:yt,24:mt,26:bt,38:vt,39:163,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(It,o,{17:164}),t(U,[2,45]),t(U,[2,46]),t(H,[2,53],{52:Ft}),{26:V,52:G,66:X,67:Z,91:Q,97:166,102:[1,167],105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},{95:[1,168],103:169,105:[1,170]},{26:V,52:G,66:X,67:Z,91:Q,95:[1,171],97:172,105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},{26:V,52:G,66:X,67:Z,91:Q,97:173,105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ft,[2,101],{22:[1,174],99:[1,175]}),t(ft,[2,105],{22:[1,176]}),t(ft,[2,109],{115:100,117:178,22:[1,177],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,122:rt,123:it,124:at,125:ot,126:st,127:ct}),t(ft,[2,111],{22:[1,179]}),t(Rt,[2,152]),t(Rt,[2,154]),t(Rt,[2,155]),t(Rt,[2,156]),t(Rt,[2,157]),t(Pt,[2,162]),t(Pt,[2,163]),t(Pt,[2,164]),t(Pt,[2,165]),t(Pt,[2,166]),t(Pt,[2,167]),t(Pt,[2,168]),t(Pt,[2,169]),t(Pt,[2,170]),t(Pt,[2,171]),t(Pt,[2,172]),t(Pt,[2,173]),t(Pt,[2,174]),{52:g,54:180,66:y,67:m,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,122:L,123:I,124:F,125:R,126:P,127:j},{22:yt,24:mt,26:bt,38:vt,39:181,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:182,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:184,42:_t,52:G,57:[1,183],66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:185,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:186,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:187,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{66:[1,188]},{22:yt,24:mt,26:bt,38:vt,39:189,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:190,42:_t,52:G,66:X,67:Z,71:[1,191],73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:192,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:193,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:194,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ht,[2,151]),t(jt,[2,3]),{8:195,15:z},{15:[2,7]},t(a,[2,28]),t(dt,[2,33]),t(H,[2,51],{30:196,22:Y}),t(gt,[2,75],{22:[1,197]}),{22:[1,198]},{22:yt,24:mt,26:bt,38:vt,39:199,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,73:xt,81:kt,82:[1,200],83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(Pt,[2,82]),t(Pt,[2,84]),t(Pt,[2,140]),t(Pt,[2,141]),t(Pt,[2,142]),t(Pt,[2,143]),t(Pt,[2,144]),t(Pt,[2,145]),t(Pt,[2,146]),t(Pt,[2,147]),t(Pt,[2,148]),t(Pt,[2,149]),t(Pt,[2,85]),t(Pt,[2,86]),t(Pt,[2,87]),t(Pt,[2,88]),t(Pt,[2,89]),t(Pt,[2,90]),t(Pt,[2,91]),t(Pt,[2,92]),t(Pt,[2,93]),t(Pt,[2,94]),t(Pt,[2,95]),{9:203,20:$,21:W,22:yt,23:q,24:mt,26:bt,38:vt,40:[1,202],42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,204],43:31,44:f,46:d,48:p,50:35,51:45,52:g,54:46,66:y,67:m,86:b,87:v,88:_,89:x,90:k,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,118:N,119:D,120:O,121:B,122:L,123:I,124:F,125:R,126:P,127:j},{22:Y,30:205},{22:[1,206],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,115:100,117:178,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},t(zt,[2,123]),{22:[1,211]},{22:[1,212],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,115:100,117:178,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:[1,213],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,115:100,117:178,122:rt,123:it,124:at,125:ot,126:st,127:ct},{84:[1,214]},t(ft,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},t(Rt,[2,153]),{84:[1,219],101:[1,220]},t(lt,[2,57],{116:129,52:g,66:y,67:m,91:w,95:T,105:E,106:C,109:S,111:A,112:M,122:L,123:I,124:F,125:R,126:P,127:j}),{22:yt,24:mt,26:bt,38:vt,41:[1,221],42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,56:[1,222],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:223,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,58:[1,224],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,60:[1,225],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,62:[1,226],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,64:[1,227],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{67:[1,228]},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,70:[1,229],73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,72:[1,230],73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,39:231,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,41:[1,232],42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,73:xt,75:[1,233],77:[1,234],81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,73:xt,75:[1,236],77:[1,235],81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{9:237,20:$,21:W,23:q},t(H,[2,52],{52:Ft}),t(gt,[2,77]),t(gt,[2,76]),{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,68:[1,238],73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(gt,[2,79]),t(Pt,[2,83]),{22:yt,24:mt,26:bt,38:vt,39:239,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(It,o,{17:240}),t(U,[2,43]),{51:241,52:g,54:46,66:y,67:m,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,122:L,123:I,124:F,125:R,126:P,127:j},{22:Yt,66:Ut,67:$t,86:Wt,96:242,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{22:Yt,66:Ut,67:$t,86:Wt,96:256,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{22:Yt,66:Ut,67:$t,86:Wt,96:257,102:qt,104:[1,258],105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{22:Yt,66:Ut,67:$t,86:Wt,96:259,102:qt,104:[1,260],105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{105:[1,261]},{22:Yt,66:Ut,67:$t,86:Wt,96:262,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{22:Yt,66:Ut,67:$t,86:Wt,96:263,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{26:V,52:G,66:X,67:Z,91:Q,97:264,105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ft,[2,102]),{84:[1,265]},t(ft,[2,106],{22:[1,266]}),t(ft,[2,107]),t(ft,[2,110]),t(ft,[2,112],{22:[1,267]}),t(ft,[2,113]),t(ut,[2,58]),t(ut,[2,59]),{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,58:[1,268],66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ut,[2,66]),t(ut,[2,61]),t(ut,[2,62]),t(ut,[2,63]),{66:[1,269]},t(ut,[2,65]),t(ut,[2,67]),{22:yt,24:mt,26:bt,38:vt,42:_t,52:G,66:X,67:Z,72:[1,270],73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ut,[2,69]),t(ut,[2,70]),t(ut,[2,72]),t(ut,[2,71]),t(ut,[2,73]),t(jt,[2,4]),t([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:yt,24:mt,26:bt,38:vt,41:[1,271],42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,272],43:31,44:f,46:d,48:p,50:35,51:45,52:g,54:46,66:y,67:m,86:b,87:v,88:_,89:x,90:k,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,118:N,119:D,120:O,121:B,122:L,123:I,124:F,125:R,126:P,127:j},t(lt,[2,56]),t(ft,[2,115],{106:Kt}),t(Jt,[2,125],{108:274,22:Yt,66:Ut,67:$t,86:Wt,102:qt,105:Ht,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt}),t(te,[2,127]),t(te,[2,129]),t(te,[2,130]),t(te,[2,131]),t(te,[2,132]),t(te,[2,133]),t(te,[2,134]),t(te,[2,135]),t(te,[2,136]),t(te,[2,137]),t(te,[2,138]),t(te,[2,139]),t(ft,[2,116],{106:Kt}),t(ft,[2,117],{106:Kt}),{22:[1,275]},t(ft,[2,118],{106:Kt}),{22:[1,276]},t(zt,[2,124]),t(ft,[2,98],{106:Kt}),t(ft,[2,99],{106:Kt}),t(ft,[2,100],{115:100,117:178,26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,122:rt,123:it,124:at,125:ot,126:st,127:ct}),t(ft,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:$,21:W,23:q},t(U,[2,42]),{22:Yt,66:Ut,67:$t,86:Wt,102:qt,105:Ht,107:283,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},t(te,[2,128]),{26:V,52:G,66:X,67:Z,91:Q,97:284,105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},{26:V,52:G,66:X,67:Z,91:Q,97:285,105:K,106:J,109:tt,111:et,112:nt,115:100,117:98,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ft,[2,108]),t(ft,[2,114]),t(ut,[2,60]),{22:yt,24:mt,26:bt,38:vt,39:286,42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:140,84:wt,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},t(ut,[2,68]),t(It,o,{17:287}),t(Jt,[2,126],{108:274,22:Yt,66:Ut,67:$t,86:Wt,102:qt,105:Ht,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt}),t(ft,[2,121],{115:100,117:178,22:[1,288],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,122:rt,123:it,124:at,125:ot,126:st,127:ct}),t(ft,[2,122],{115:100,117:178,22:[1,289],26:V,52:G,66:X,67:Z,91:Q,105:K,106:J,109:tt,111:et,112:nt,122:rt,123:it,124:at,125:ot,126:st,127:ct}),{22:yt,24:mt,26:bt,38:vt,41:[1,290],42:_t,52:G,66:X,67:Z,73:xt,81:kt,83:201,85:151,86:Tt,87:Et,88:Ct,89:St,90:At,91:Mt,92:Nt,94:142,95:Dt,105:K,106:J,109:Ot,111:et,112:nt,113:Bt,114:Lt,115:148,122:rt,123:it,124:at,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,291],43:31,44:f,46:d,48:p,50:35,51:45,52:g,54:46,66:y,67:m,86:b,87:v,88:_,89:x,90:k,91:w,95:T,105:E,106:C,109:S,111:A,112:M,116:47,118:N,119:D,120:O,121:B,122:L,123:I,124:F,125:R,126:P,127:j},{22:Yt,66:Ut,67:$t,86:Wt,96:292,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},{22:Yt,66:Ut,67:$t,86:Wt,96:293,102:qt,105:Ht,107:243,108:244,109:Vt,110:Gt,111:Xt,112:Zt,113:Qt},t(ut,[2,64]),t(U,[2,41]),t(ft,[2,119],{106:Kt}),t(ft,[2,120],{106:Kt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},ne={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:return t.lex.firstGraph()&&this.begin("dir"),24;case 37:return 38;case 38:return 42;case 39:case 40:case 41:case 42:return 101;case 43:return this.popState(),25;case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:return this.popState(),26;case 54:return 118;case 55:return 119;case 56:return 120;case 57:return 121;case 58:return 105;case 59:return 111;case 60:return 53;case 61:return 67;case 62:return 52;case 63:return 20;case 64:return 106;case 65:return 126;case 66:case 67:case 68:return 82;case 69:case 70:case 71:return 81;case 72:return 59;case 73:return 60;case 74:return 61;case 75:return 62;case 76:return 63;case 77:return 64;case 78:return 65;case 79:return 69;case 80:return 70;case 81:return 55;case 82:return 56;case 83:return 109;case 84:return 112;case 85:return 127;case 86:return 124;case 87:return 113;case 88:case 89:return 125;case 90:return 114;case 91:return 73;case 92:return 92;case 93:return"SEP";case 94:return 91;case 95:return 66;case 96:return 75;case 97:return 74;case 98:return 77;case 99:return 76;case 100:return 122;case 101:return 123;case 102:return 68;case 103:return 57;case 104:return 58;case 105:return 40;case 106:return 41;case 107:return 71;case 108:return 72;case 109:return 133;case 110:return 21;case 111:return 22;case 112:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[43,44,45,46,47,48,49,50,51,52,53],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],inclusive:!0}}};function re(){this.yy={}}return ee.lexer=ne,re.prototype=ee,ee.Parser=re,new re}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(5354).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},9959:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,3],n=[1,5],r=[7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],i=[1,15],a=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,21],h=[1,22],f=[1,23],d=[1,24],p=[1,25],g=[1,26],y=[1,28],m=[1,30],b=[1,33],v=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39],_={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,excludes:16,includes:17,todayMarker:18,title:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,clickStatement:26,taskTxt:27,taskData:28,openDirective:29,typeDirective:30,closeDirective:31,":":32,argDirective:33,click:34,callbackname:35,callbackargs:36,href:37,clickStatementDebug:38,open_directive:39,type_directive:40,arg_directive:41,close_directive:42,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"excludes",17:"includes",18:"todayMarker",19:"title",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"taskTxt",28:"taskData",32:":",34:"click",35:"callbackname",36:"callbackargs",37:"href",39:"open_directive",40:"type_directive",41:"arg_directive",42:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[26,2],[26,3],[26,3],[26,4],[26,3],[26,4],[26,2],[38,2],[38,3],[38,3],[38,4],[38,3],[38,4],[38,2],[29,1],[30,1],[33,1],[31,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 2:return a[s-1];case 3:case 7:case 8:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:this.$=a[s];break;case 9:r.setDateFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 10:r.enableInclusiveEndDates(),this.$=a[s].substr(18);break;case 11:r.TopAxis(),this.$=a[s].substr(8);break;case 12:r.setAxisFormat(a[s].substr(11)),this.$=a[s].substr(11);break;case 13:r.setExcludes(a[s].substr(9)),this.$=a[s].substr(9);break;case 14:r.setIncludes(a[s].substr(9)),this.$=a[s].substr(9);break;case 15:r.setTodayMarker(a[s].substr(12)),this.$=a[s].substr(12);break;case 16:r.setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 17:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 18:case 19:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 20:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 22:r.addTask(a[s-1],a[s]),this.$="task";break;case 26:this.$=a[s-1],r.setClickEvent(a[s-1],a[s],null);break;case 27:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],a[s]);break;case 28:this.$=a[s-2],r.setClickEvent(a[s-2],a[s-1],null),r.setLink(a[s-2],a[s]);break;case 29:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-2],a[s-1]),r.setLink(a[s-3],a[s]);break;case 30:this.$=a[s-2],r.setClickEvent(a[s-2],a[s],null),r.setLink(a[s-2],a[s-1]);break;case 31:this.$=a[s-3],r.setClickEvent(a[s-3],a[s-1],a[s]),r.setLink(a[s-3],a[s-2]);break;case 32:this.$=a[s-1],r.setLink(a[s-1],a[s]);break;case 33:case 39:this.$=a[s-1]+" "+a[s];break;case 34:case 35:case 37:this.$=a[s-2]+" "+a[s-1]+" "+a[s];break;case 36:case 38:this.$=a[s-3]+" "+a[s-2]+" "+a[s-1]+" "+a[s];break;case 40:r.parseDirective("%%{","open_directive");break;case 41:r.parseDirective(a[s],"type_directive");break;case 42:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 43:r.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,29:4,39:n},{1:[3]},{3:6,4:2,5:e,29:4,39:n},t(r,[2,3],{6:7}),{30:8,40:[1,9]},{40:[2,40]},{1:[2,1]},{4:29,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:i,13:a,14:o,15:s,16:c,17:l,18:u,19:h,20:f,22:d,24:p,25:g,26:27,27:y,29:4,34:m,39:n},{31:31,32:[1,32],42:b},t([32,42],[2,41]),t(r,[2,8],{1:[2,2]}),t(r,[2,4]),{4:29,10:34,12:i,13:a,14:o,15:s,16:c,17:l,18:u,19:h,20:f,22:d,24:p,25:g,26:27,27:y,29:4,34:m,39:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),t(r,[2,12]),t(r,[2,13]),t(r,[2,14]),t(r,[2,15]),t(r,[2,16]),{21:[1,35]},{23:[1,36]},t(r,[2,19]),t(r,[2,20]),t(r,[2,21]),{28:[1,37]},t(r,[2,23]),{35:[1,38],37:[1,39]},{11:[1,40]},{33:41,41:[1,42]},{11:[2,43]},t(r,[2,5]),t(r,[2,17]),t(r,[2,18]),t(r,[2,22]),t(r,[2,26],{36:[1,43],37:[1,44]}),t(r,[2,32],{35:[1,45]}),t(v,[2,24]),{31:46,42:b},{42:[2,42]},t(r,[2,27],{37:[1,47]}),t(r,[2,28]),t(r,[2,30],{36:[1,48]}),{11:[1,49]},t(r,[2,29]),t(r,[2,31]),t(v,[2,25])],defaultActions:{5:[2,40],6:[2,1],33:[2,43],42:[2,42]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},x={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),39;case 1:return this.begin("type_directive"),40;case 2:return this.popState(),this.begin("arg_directive"),32;case 3:return this.popState(),this.popState(),42;case 4:return 41;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 37;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 35;case 27:return 36;case 28:this.begin("click");break;case 30:return 34;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 17;case 37:return 16;case 38:return 18;case 39:return"date";case 40:return 19;case 41:return"accDescription";case 42:return 25;case 43:return 27;case 44:return 28;case 45:return 32;case 46:return 7;case 47:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],inclusive:!0}}};function k(){this.yy={}}return _.lexer=x,k.prototype=_,_.Parser=k,new k}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(6878).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},2553:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,4],n=[1,7],r=[1,5],i=[1,9],a=[1,6],o=[2,6],s=[1,16],c=[6,8,14,20,22,24,25,27,29,32,35,37,49,53],l=[8,14,20,22,24,25,27,29,32,35,37],u=[8,13,14,20,22,24,25,27,29,32,35,37],h=[1,26],f=[6,8,14,49,53],d=[8,14,53],p=[1,64],g=[1,65],y=[1,66],m=[8,14,33,36,41,53],b={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ID:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,MERGE:35,COMMIT_TAG:36,COMMIT:37,commit_arg:38,COMMIT_TYPE:39,commitType:40,COMMIT_MSG:41,NORMAL:42,REVERSE:43,HIGHLIGHT:44,openDirective:45,typeDirective:46,closeDirective:47,argDirective:48,open_directive:49,type_directive:50,arg_directive:51,close_directive:52,";":53,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",28:"ID",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"MERGE",36:"COMMIT_TAG",37:"COMMIT",39:"COMMIT_TYPE",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive",53:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[18,2],[18,4],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[38,0],[38,1],[40,1],[40,1],[40,1],[5,3],[5,5],[45,1],[46,1],[48,1],[47,1],[4,1],[4,1],[4,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 3:return a[s];case 4:return a[s-1];case 5:return r.setDirection(a[s-3]),a[s-1];case 7:r.setOptions(a[s-1]),this.$=a[s];break;case 8:a[s-1]+=a[s],this.$=a[s-1];break;case 10:this.$=[];break;case 11:a[s-1].push(a[s]),this.$=a[s-1];break;case 12:this.$=a[s-1];break;case 17:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 18:case 19:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 20:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 22:r.checkout(a[s]);break;case 23:r.branch(a[s]);break;case 24:r.branch(a[s-2],a[s]);break;case 25:r.cherryPick(a[s]);break;case 26:r.merge(a[s]);break;case 27:r.merge(a[s-2],a[s]);break;case 28:r.commit(a[s]);break;case 29:r.commit("","",r.commitType.NORMAL,a[s]);break;case 30:r.commit("","",a[s],"");break;case 31:r.commit("","",a[s],a[s-2]);break;case 32:r.commit("","",a[s-2],a[s]);break;case 33:r.commit("",a[s],r.commitType.NORMAL,"");break;case 34:r.commit("",a[s-2],r.commitType.NORMAL,a[s]);break;case 35:r.commit("",a[s],r.commitType.NORMAL,a[s-2]);break;case 36:r.commit("",a[s-2],a[s],"");break;case 37:r.commit("",a[s],a[s-2],"");break;case 38:r.commit("",a[s-4],a[s-2],a[s]);break;case 39:r.commit("",a[s-4],a[s],a[s-2]);break;case 40:r.commit("",a[s-2],a[s-4],a[s]);break;case 41:r.commit("",a[s],a[s-4],a[s-2]);break;case 42:r.commit("",a[s],a[s-2],a[s-4]);break;case 43:r.commit("",a[s-2],a[s],a[s-4]);break;case 44:r.commit(a[s],"",r.commitType.NORMAL,"");break;case 45:r.commit(a[s],"",r.commitType.NORMAL,a[s-2]);break;case 46:r.commit(a[s-2],"",r.commitType.NORMAL,a[s]);break;case 47:r.commit(a[s-2],"",a[s],"");break;case 48:r.commit(a[s],"",a[s-2],"");break;case 49:r.commit(a[s],a[s-2],r.commitType.NORMAL,"");break;case 50:r.commit(a[s-2],a[s],r.commitType.NORMAL,"");break;case 51:r.commit(a[s-4],"",a[s-2],a[s]);break;case 52:r.commit(a[s-4],"",a[s],a[s-2]);break;case 53:r.commit(a[s-2],"",a[s-4],a[s]);break;case 54:r.commit(a[s],"",a[s-4],a[s-2]);break;case 55:r.commit(a[s],"",a[s-2],a[s-4]);break;case 56:r.commit(a[s-2],"",a[s],a[s-4]);break;case 57:r.commit(a[s-4],a[s],a[s-2],"");break;case 58:r.commit(a[s-4],a[s-2],a[s],"");break;case 59:r.commit(a[s-2],a[s],a[s-4],"");break;case 60:r.commit(a[s],a[s-2],a[s-4],"");break;case 61:r.commit(a[s],a[s-4],a[s-2],"");break;case 62:r.commit(a[s-2],a[s-4],a[s],"");break;case 63:r.commit(a[s-4],a[s],r.commitType.NORMAL,a[s-2]);break;case 64:r.commit(a[s-4],a[s-2],r.commitType.NORMAL,a[s]);break;case 65:r.commit(a[s-2],a[s],r.commitType.NORMAL,a[s-4]);break;case 66:r.commit(a[s],a[s-2],r.commitType.NORMAL,a[s-4]);break;case 67:r.commit(a[s],a[s-4],r.commitType.NORMAL,a[s-2]);break;case 68:r.commit(a[s-2],a[s-4],r.commitType.NORMAL,a[s]);break;case 69:r.commit(a[s-6],a[s-4],a[s-2],a[s]);break;case 70:r.commit(a[s-6],a[s-4],a[s],a[s-2]);break;case 71:r.commit(a[s-6],a[s-2],a[s-4],a[s]);break;case 72:r.commit(a[s-6],a[s],a[s-4],a[s-2]);break;case 73:r.commit(a[s-6],a[s-2],a[s],a[s-4]);break;case 74:r.commit(a[s-6],a[s],a[s-2],a[s-4]);break;case 75:r.commit(a[s-4],a[s-6],a[s-2],a[s]);break;case 76:r.commit(a[s-4],a[s-6],a[s],a[s-2]);break;case 77:r.commit(a[s-2],a[s-6],a[s-4],a[s]);break;case 78:r.commit(a[s],a[s-6],a[s-4],a[s-2]);break;case 79:r.commit(a[s-2],a[s-6],a[s],a[s-4]);break;case 80:r.commit(a[s],a[s-6],a[s-2],a[s-4]);break;case 81:r.commit(a[s],a[s-4],a[s-2],a[s-6]);break;case 82:r.commit(a[s-2],a[s-4],a[s],a[s-6]);break;case 83:r.commit(a[s],a[s-2],a[s-4],a[s-6]);break;case 84:r.commit(a[s-2],a[s],a[s-4],a[s-6]);break;case 85:r.commit(a[s-4],a[s-2],a[s],a[s-6]);break;case 86:r.commit(a[s-4],a[s],a[s-2],a[s-6]);break;case 87:r.commit(a[s-2],a[s-4],a[s-6],a[s]);break;case 88:r.commit(a[s],a[s-4],a[s-6],a[s-2]);break;case 89:r.commit(a[s-2],a[s],a[s-6],a[s-4]);break;case 90:r.commit(a[s],a[s-2],a[s-6],a[s-4]);break;case 91:r.commit(a[s-4],a[s-2],a[s-6],a[s]);break;case 92:r.commit(a[s-4],a[s],a[s-6],a[s-2]);break;case 93:this.$="";break;case 94:this.$=a[s];break;case 95:this.$=r.commitType.NORMAL;break;case 96:this.$=r.commitType.REVERSE;break;case 97:this.$=r.commitType.HIGHLIGHT;break;case 100:r.parseDirective("%%{","open_directive");break;case 101:r.parseDirective(a[s],"type_directive");break;case 102:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 103:r.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:e,8:n,14:r,45:8,49:i,53:a},{1:[3]},{3:10,4:2,5:3,6:e,8:n,14:r,45:8,49:i,53:a},{3:11,4:2,5:3,6:e,8:n,14:r,45:8,49:i,53:a},{7:12,8:o,9:[1,13],10:[1,14],11:15,14:s},t(c,[2,104]),t(c,[2,105]),t(c,[2,106]),{46:17,50:[1,18]},{50:[2,100]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:o,11:15,14:s},{9:[1,21]},t(l,[2,10],{12:22,13:[1,23]}),t(u,[2,9]),{9:[1,25],47:24,52:h},t([9,52],[2,101]),{1:[2,3]},{8:[1,27]},{7:28,8:o,11:15,14:s},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],35:[1,42],37:[1,41]},t(u,[2,8]),t(f,[2,98]),{48:45,51:[1,46]},t(f,[2,103]),{1:[2,4]},{8:[1,47]},t(l,[2,11]),{4:48,8:n,14:r,53:a},t(l,[2,13]),t(d,[2,14]),t(d,[2,15]),t(d,[2,16]),{21:[1,49]},{23:[1,50]},t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),{28:[1,51]},t(d,[2,93],{38:52,33:[1,55],34:[1,57],36:[1,53],39:[1,54],41:[1,56]}),{28:[1,58]},{33:[1,59]},{28:[1,60]},{47:61,52:h},{52:[2,102]},{1:[2,5]},t(l,[2,12]),t(d,[2,17]),t(d,[2,18]),t(d,[2,22]),t(d,[2,28]),{34:[1,62]},{40:63,42:p,43:g,44:y},{34:[1,67]},{34:[1,68]},t(d,[2,94]),t(d,[2,26],{36:[1,69]}),{34:[1,70]},t(d,[2,23],{30:[1,71]}),t(f,[2,99]),t(d,[2,29],{33:[1,73],39:[1,72],41:[1,74]}),t(d,[2,30],{33:[1,76],36:[1,75],41:[1,77]}),t(m,[2,95]),t(m,[2,96]),t(m,[2,97]),t(d,[2,33],{36:[1,78],39:[1,79],41:[1,80]}),t(d,[2,44],{33:[1,83],36:[1,81],39:[1,82]}),{34:[1,84]},t(d,[2,25]),{31:[1,85]},{40:86,42:p,43:g,44:y},{34:[1,87]},{34:[1,88]},{34:[1,89]},{34:[1,90]},{34:[1,91]},{34:[1,92]},{40:93,42:p,43:g,44:y},{34:[1,94]},{34:[1,95]},{40:96,42:p,43:g,44:y},{34:[1,97]},t(d,[2,27]),t(d,[2,24]),t(d,[2,31],{33:[1,98],41:[1,99]}),t(d,[2,35],{39:[1,100],41:[1,101]}),t(d,[2,45],{33:[1,103],39:[1,102]}),t(d,[2,32],{33:[1,104],41:[1,105]}),t(d,[2,37],{36:[1,106],41:[1,107]}),t(d,[2,48],{33:[1,109],36:[1,108]}),t(d,[2,34],{39:[1,110],41:[1,111]}),t(d,[2,36],{36:[1,112],41:[1,113]}),t(d,[2,49],{36:[1,115],39:[1,114]}),t(d,[2,46],{33:[1,117],39:[1,116]}),t(d,[2,47],{33:[1,119],36:[1,118]}),t(d,[2,50],{36:[1,121],39:[1,120]}),{34:[1,122]},{34:[1,123]},{40:124,42:p,43:g,44:y},{34:[1,125]},{40:126,42:p,43:g,44:y},{34:[1,127]},{34:[1,128]},{34:[1,129]},{34:[1,130]},{34:[1,131]},{34:[1,132]},{34:[1,133]},{40:134,42:p,43:g,44:y},{34:[1,135]},{34:[1,136]},{34:[1,137]},{40:138,42:p,43:g,44:y},{34:[1,139]},{40:140,42:p,43:g,44:y},{34:[1,141]},{34:[1,142]},{34:[1,143]},{40:144,42:p,43:g,44:y},{34:[1,145]},t(d,[2,42],{41:[1,146]}),t(d,[2,55],{33:[1,147]}),t(d,[2,43],{41:[1,148]}),t(d,[2,66],{39:[1,149]}),t(d,[2,56],{33:[1,150]}),t(d,[2,65],{39:[1,151]}),t(d,[2,41],{41:[1,152]}),t(d,[2,54],{33:[1,153]}),t(d,[2,40],{41:[1,154]}),t(d,[2,60],{36:[1,155]}),t(d,[2,53],{33:[1,156]}),t(d,[2,59],{36:[1,157]}),t(d,[2,39],{41:[1,158]}),t(d,[2,67],{39:[1,159]}),t(d,[2,38],{41:[1,160]}),t(d,[2,61],{36:[1,161]}),t(d,[2,62],{36:[1,162]}),t(d,[2,68],{39:[1,163]}),t(d,[2,52],{33:[1,164]}),t(d,[2,63],{39:[1,165]}),t(d,[2,51],{33:[1,166]}),t(d,[2,57],{36:[1,167]}),t(d,[2,58],{36:[1,168]}),t(d,[2,64],{39:[1,169]}),{34:[1,170]},{34:[1,171]},{34:[1,172]},{40:173,42:p,43:g,44:y},{34:[1,174]},{40:175,42:p,43:g,44:y},{34:[1,176]},{34:[1,177]},{34:[1,178]},{34:[1,179]},{34:[1,180]},{34:[1,181]},{34:[1,182]},{40:183,42:p,43:g,44:y},{34:[1,184]},{34:[1,185]},{34:[1,186]},{40:187,42:p,43:g,44:y},{34:[1,188]},{40:189,42:p,43:g,44:y},{34:[1,190]},{34:[1,191]},{34:[1,192]},{40:193,42:p,43:g,44:y},t(d,[2,83]),t(d,[2,84]),t(d,[2,81]),t(d,[2,82]),t(d,[2,86]),t(d,[2,85]),t(d,[2,90]),t(d,[2,89]),t(d,[2,88]),t(d,[2,87]),t(d,[2,92]),t(d,[2,91]),t(d,[2,80]),t(d,[2,79]),t(d,[2,78]),t(d,[2,77]),t(d,[2,75]),t(d,[2,76]),t(d,[2,74]),t(d,[2,73]),t(d,[2,72]),t(d,[2,71]),t(d,[2,69]),t(d,[2,70])],defaultActions:{9:[2,100],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,102],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},v={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),49;case 1:return this.begin("type_directive"),50;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),52;case 4:return 51;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 35:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:case 15:break;case 16:return 6;case 17:return 37;case 18:return 33;case 19:return 39;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 36;case 25:return 29;case 26:return 30;case 27:return 35;case 28:return 32;case 29:return 27;case 30:case 31:return 10;case 32:return 9;case 33:return"CARET";case 34:this.begin("options");break;case 36:return 13;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 28;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch\b)/i,/^(?:order:)/i,/^(?:merge\b)/i,/^(?:cherry-pick\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+)/i,/^(?:[a-zA-Z][-_\./a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[35,36],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,37,40,41,42],inclusive:!0}}};function _(){this.yy={}}return b.lexer=v,_.prototype=b,b.Parser=_,new _}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(8183).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},6765:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,r,i,a,o){switch(a.length,i){case 1:return r;case 4:break;case 6:r.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},r={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function i(){this.yy={}}return n.lexer=r,i.prototype=n,n.Parser=i,new i}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(1428).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},7062:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,4],n=[1,5],r=[1,6],i=[1,7],a=[1,9],o=[1,11,13,15,17,19,20,26,27,28,29],s=[2,5],c=[1,6,11,13,15,17,19,20,26,27,28,29],l=[26,27,28],u=[2,8],h=[1,18],f=[1,19],d=[1,20],p=[1,21],g=[1,22],y=[1,23],m=[1,28],b=[6,26,27,28,29],v={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:r.setShowData(!0);break;case 7:this.$=a[s-1];break;case 9:r.addSection(a[s-1],r.cleanupValue(a[s]));break;case 10:this.$=a[s].trim(),r.setDiagramTitle(this.$);break;case 11:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 12:case 13:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 14:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 21:r.parseDirective("%%{","open_directive");break;case 22:r.parseDirective(a[s],"type_directive");break;case 23:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 24:r.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,21:8,26:n,27:r,28:i,29:a},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:n,27:r,28:i,29:a},{3:11,4:2,5:3,6:e,21:8,26:n,27:r,28:i,29:a},t(o,s,{7:12,8:[1,13]}),t(c,[2,18]),t(c,[2,19]),t(c,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(l,u,{21:8,9:16,10:17,5:24,1:[2,3],11:h,13:f,15:d,17:p,19:g,20:y,29:a}),t(o,s,{7:25}),{23:26,24:[1,27],32:m},t([24,32],[2,22]),t(o,[2,6]),{4:29,26:n,27:r,28:i},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(l,[2,13]),t(l,[2,14]),t(l,[2,15]),t(l,u,{21:8,9:16,10:17,5:24,1:[2,4],11:h,13:f,15:d,17:p,19:g,20:y,29:a}),t(b,[2,16]),{25:34,31:[1,35]},t(b,[2,24]),t(o,[2,7]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),t(l,[2,12]),{23:36,32:m},{32:[2,23]},t(b,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},_={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};function x(){this.yy={}}return v.lexer=_,x.prototype=v,v.Parser=x,new x}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(4551).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},3176:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,3],n=[1,5],r=[1,6],i=[1,7],a=[1,8],o=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],s=[1,22],c=[2,13],l=[1,26],u=[1,27],h=[1,28],f=[1,29],d=[1,30],p=[1,31],g=[1,24],y=[1,32],m=[1,33],b=[1,36],v=[71,72],_=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],x=[1,56],k=[1,57],w=[1,58],T=[1,59],E=[1,60],C=[1,61],S=[1,62],A=[62,63],M=[1,74],N=[1,70],D=[1,71],O=[1,72],B=[1,73],L=[1,75],I=[1,79],F=[1,80],R=[1,77],P=[1,78],j=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],z={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 6:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 7:case 8:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 9:r.parseDirective("%%{","open_directive");break;case 10:r.parseDirective(a[s],"type_directive");break;case 11:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 12:r.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:r.addRequirement(a[s-3],a[s-4]);break;case 20:r.setNewReqId(a[s-2]);break;case 21:r.setNewReqText(a[s-2]);break;case 22:r.setNewReqRisk(a[s-2]);break;case 23:r.setNewReqVerifyMethod(a[s-2]);break;case 26:this.$=r.RequirementType.REQUIREMENT;break;case 27:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=r.RiskLevel.LOW_RISK;break;case 33:this.$=r.RiskLevel.MED_RISK;break;case 34:this.$=r.RiskLevel.HIGH_RISK;break;case 35:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=r.VerifyType.VERIFY_TEST;break;case 39:r.addElement(a[s-3]);break;case 40:r.setNewElementType(a[s-2]);break;case 41:r.setNewElementDocRef(a[s-2]);break;case 44:r.addRelationship(a[s-2],a[s],a[s-4]);break;case 45:r.addRelationship(a[s-2],a[s-4],a[s]);break;case 46:this.$=r.Relationships.CONTAINS;break;case 47:this.$=r.Relationships.COPIES;break;case 48:this.$=r.Relationships.DERIVES;break;case 49:this.$=r.Relationships.SATISFIES;break;case 50:this.$=r.Relationships.VERIFIES;break;case 51:this.$=r.Relationships.REFINES;break;case 52:this.$=r.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:4,14:n,16:r,18:i,19:a},{1:[3]},{3:10,4:2,5:[1,9],6:e,9:4,14:n,16:r,18:i,19:a},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},t(o,[2,8]),{20:[2,9]},{3:16,4:2,6:e,9:4,14:n,16:r,18:i,19:a},{1:[2,2]},{4:21,5:s,7:17,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{11:34,12:[1,35],22:b},t([12,22],[2,10]),t(o,[2,6]),t(o,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:s,7:38,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{4:21,5:s,7:39,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{4:21,5:s,7:40,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{4:21,5:s,7:41,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{4:21,5:s,7:42,8:c,9:4,14:n,16:r,18:i,19:a,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:h,43:f,44:d,45:p,53:g,71:y,72:m},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},t(v,[2,26]),t(v,[2,27]),t(v,[2,28]),t(v,[2,29]),t(v,[2,30]),t(v,[2,31]),t(_,[2,55]),t(_,[2,56]),t(o,[2,4]),{13:51,21:[1,52]},t(o,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:x,65:k,66:w,67:T,68:E,69:C,70:S},{61:63,64:x,65:k,66:w,67:T,68:E,69:C,70:S},{11:64,22:b},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},t(A,[2,46]),t(A,[2,47]),t(A,[2,48]),t(A,[2,49]),t(A,[2,50]),t(A,[2,51]),t(A,[2,52]),{63:[1,68]},t(o,[2,5]),{5:M,29:69,30:N,33:D,35:O,37:B,39:L},{5:I,39:F,55:76,56:R,58:P},{32:81,71:y,72:m},{32:82,71:y,72:m},t(j,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:M,29:87,30:N,33:D,35:O,37:B,39:L},t(j,[2,25]),t(j,[2,39]),{31:[1,88]},{31:[1,89]},{5:I,39:F,55:90,56:R,58:P},t(j,[2,43]),t(j,[2,44]),t(j,[2,45]),{32:91,71:y,72:m},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},t(j,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},t(j,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:M,29:116,30:N,33:D,35:O,37:B,39:L},{5:M,29:117,30:N,33:D,35:O,37:B,39:L},{5:M,29:118,30:N,33:D,35:O,37:B,39:L},{5:M,29:119,30:N,33:D,35:O,37:B,39:L},{5:I,39:F,55:120,56:R,58:P},{5:I,39:F,55:121,56:R,58:P},t(j,[2,20]),t(j,[2,21]),t(j,[2,22]),t(j,[2,23]),t(j,[2,40]),t(j,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},Y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};function U(){this.yy={}}return z.lexer=Y,U.prototype=z,z.Parser=U,new U}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(8800).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},6876:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,3],r=[1,5],i=[1,7],a=[2,5],o=[1,15],s=[1,17],c=[1,18],l=[1,19],u=[1,21],h=[1,22],f=[1,23],d=[1,29],p=[1,30],g=[1,31],y=[1,32],m=[1,33],b=[1,34],v=[1,35],_=[1,36],x=[1,37],k=[1,38],w=[1,39],T=[1,40],E=[1,43],C=[1,44],S=[1,45],A=[1,46],M=[1,47],N=[1,48],D=[1,51],O=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],B=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],L=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],I=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],F=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],R=[67,68,69],P=[1,121],j=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],z={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,openDirective:11,typeDirective:12,closeDirective:13,":":14,argDirective:15,participant:16,actor:17,AS:18,restOfLine:19,participant_actor:20,signal:21,autonumber:22,NUM:23,off:24,activate:25,deactivate:26,note_statement:27,links_statement:28,link_statement:29,properties_statement:30,details_statement:31,title:32,legacy_title:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,loop:39,end:40,rect:41,opt:42,alt:43,else_sections:44,par:45,par_sections:46,critical:47,option_sections:48,break:49,option:50,and:51,else:52,note:53,placement:54,text2:55,over:56,actor_pair:57,links:58,link:59,properties:60,details:61,spaceList:62,",":63,left_of:64,right_of:65,signaltype:66,"+":67,"-":68,ACTOR:69,SOLID_OPEN_ARROW:70,DOTTED_OPEN_ARROW:71,SOLID_ARROW:72,DOTTED_ARROW:73,SOLID_CROSS:74,DOTTED_CROSS:75,SOLID_POINT:76,DOTTED_POINT:77,TXT:78,open_directive:79,type_directive:80,arg_directive:81,close_directive:82,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",20:"participant_actor",22:"autonumber",23:"NUM",24:"off",25:"activate",26:"deactivate",32:"title",33:"legacy_title",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",39:"loop",40:"end",41:"rect",42:"opt",43:"alt",45:"par",47:"critical",49:"break",50:"option",51:"and",52:"else",53:"note",56:"over",58:"links",59:"link",60:"properties",61:"details",63:",",64:"left_of",65:"right_of",67:"+",68:"-",69:"ACTOR",70:"SOLID_OPEN_ARROW",71:"DOTTED_OPEN_ARROW",72:"SOLID_ARROW",73:"DOTTED_ARROW",74:"SOLID_CROSS",75:"DOTTED_CROSS",76:"SOLID_POINT",77:"DOTTED_POINT",78:"TXT",79:"open_directive",80:"type_directive",81:"arg_directive",82:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[6,4],[6,6],[10,5],[10,3],[10,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:return r.apply(a[s]),a[s];case 5:case 9:this.$=[];break;case 6:a[s-1].push(a[s]),this.$=a[s-1];break;case 7:case 8:case 56:this.$=a[s];break;case 12:a[s-3].type="addParticipant",a[s-3].description=r.parseMessage(a[s-1]),this.$=a[s-3];break;case 13:a[s-1].type="addParticipant",this.$=a[s-1];break;case 14:a[s-3].type="addActor",a[s-3].description=r.parseMessage(a[s-1]),this.$=a[s-3];break;case 15:a[s-1].type="addActor",this.$=a[s-1];break;case 17:this.$={type:"sequenceIndex",sequenceIndex:Number(a[s-2]),sequenceIndexStep:Number(a[s-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(a[s-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:a[s-1]};break;case 22:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:a[s-1]};break;case 28:r.setDiagramTitle(a[s].substring(6)),this.$=a[s].substring(6);break;case 29:r.setDiagramTitle(a[s].substring(7)),this.$=a[s].substring(7);break;case 30:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 31:case 32:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 33:a[s-1].unshift({type:"loopStart",loopText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.LOOP_START}),a[s-1].push({type:"loopEnd",loopText:a[s-2],signalType:r.LINETYPE.LOOP_END}),this.$=a[s-1];break;case 34:a[s-1].unshift({type:"rectStart",color:r.parseMessage(a[s-2]),signalType:r.LINETYPE.RECT_START}),a[s-1].push({type:"rectEnd",color:r.parseMessage(a[s-2]),signalType:r.LINETYPE.RECT_END}),this.$=a[s-1];break;case 35:a[s-1].unshift({type:"optStart",optText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.OPT_START}),a[s-1].push({type:"optEnd",optText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.OPT_END}),this.$=a[s-1];break;case 36:a[s-1].unshift({type:"altStart",altText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.ALT_START}),a[s-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=a[s-1];break;case 37:a[s-1].unshift({type:"parStart",parText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.PAR_START}),a[s-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=a[s-1];break;case 38:a[s-1].unshift({type:"criticalStart",criticalText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.CRITICAL_START}),a[s-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=a[s-1];break;case 39:a[s-1].unshift({type:"breakStart",breakText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.BREAK_START}),a[s-1].push({type:"breakEnd",optText:r.parseMessage(a[s-2]),signalType:r.LINETYPE.BREAK_END}),this.$=a[s-1];break;case 42:this.$=a[s-3].concat([{type:"option",optionText:r.parseMessage(a[s-1]),signalType:r.LINETYPE.CRITICAL_OPTION},a[s]]);break;case 44:this.$=a[s-3].concat([{type:"and",parText:r.parseMessage(a[s-1]),signalType:r.LINETYPE.PAR_AND},a[s]]);break;case 46:this.$=a[s-3].concat([{type:"else",altText:r.parseMessage(a[s-1]),signalType:r.LINETYPE.ALT_ELSE},a[s]]);break;case 47:this.$=[a[s-1],{type:"addNote",placement:a[s-2],actor:a[s-1].actor,text:a[s]}];break;case 48:a[s-2]=[].concat(a[s-1],a[s-1]).slice(0,2),a[s-2][0]=a[s-2][0].actor,a[s-2][1]=a[s-2][1].actor,this.$=[a[s-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:a[s-2].slice(0,2),text:a[s]}];break;case 49:this.$=[a[s-1],{type:"addLinks",actor:a[s-1].actor,text:a[s]}];break;case 50:this.$=[a[s-1],{type:"addALink",actor:a[s-1].actor,text:a[s]}];break;case 51:this.$=[a[s-1],{type:"addProperties",actor:a[s-1].actor,text:a[s]}];break;case 52:this.$=[a[s-1],{type:"addDetails",actor:a[s-1].actor,text:a[s]}];break;case 55:this.$=[a[s-2],a[s]];break;case 57:this.$=r.PLACEMENT.LEFTOF;break;case 58:this.$=r.PLACEMENT.RIGHTOF;break;case 59:this.$=[a[s-4],a[s-1],{type:"addMessage",from:a[s-4].actor,to:a[s-1].actor,signalType:a[s-3],msg:a[s]},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:a[s-1]}];break;case 60:this.$=[a[s-4],a[s-1],{type:"addMessage",from:a[s-4].actor,to:a[s-1].actor,signalType:a[s-3],msg:a[s]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:a[s-4]}];break;case 61:this.$=[a[s-3],a[s-1],{type:"addMessage",from:a[s-3].actor,to:a[s-1].actor,signalType:a[s-2],msg:a[s]}];break;case 62:this.$={type:"addParticipant",actor:a[s]};break;case 63:this.$=r.LINETYPE.SOLID_OPEN;break;case 64:this.$=r.LINETYPE.DOTTED_OPEN;break;case 65:this.$=r.LINETYPE.SOLID;break;case 66:this.$=r.LINETYPE.DOTTED;break;case 67:this.$=r.LINETYPE.SOLID_CROSS;break;case 68:this.$=r.LINETYPE.DOTTED_CROSS;break;case 69:this.$=r.LINETYPE.SOLID_POINT;break;case 70:this.$=r.LINETYPE.DOTTED_POINT;break;case 71:this.$=r.parseMessage(a[s].trim().substring(1));break;case 72:r.parseDirective("%%{","open_directive");break;case 73:r.parseDirective(a[s],"type_directive");break;case 74:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 75:r.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:n,6:4,7:r,11:6,79:i},{1:[3]},{3:8,4:e,5:n,6:4,7:r,11:6,79:i},{3:9,4:e,5:n,6:4,7:r,11:6,79:i},{3:10,4:e,5:n,6:4,7:r,11:6,79:i},t([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],a,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},{13:49,14:[1,50],82:D},t([14,82],[2,73]),t(O,[2,6]),{6:41,10:52,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},t(O,[2,8]),t(O,[2,9]),{17:53,69:N},{17:54,69:N},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:N},{17:60,69:N},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},t(O,[2,28]),t(O,[2,29]),{35:[1,66]},{37:[1,67]},t(O,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},t(O,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:N},{17:89,69:N},{17:90,69:N},{17:91,69:N},t([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},t(O,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},t(O,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},t(O,[2,20]),{5:[1,102]},{5:[1,103]},t(O,[2,23]),t(O,[2,24]),t(O,[2,25]),t(O,[2,26]),t(O,[2,27]),t(O,[2,30]),t(O,[2,31]),t(B,a,{8:104}),t(B,a,{8:105}),t(B,a,{8:106}),t(L,a,{44:107,8:108}),t(I,a,{46:109,8:110}),t(F,a,{48:111,8:112}),t(B,a,{8:113}),{17:116,67:[1,114],68:[1,115],69:N},t(R,[2,63]),t(R,[2,64]),t(R,[2,65]),t(R,[2,66]),t(R,[2,67]),t(R,[2,68]),t(R,[2,69]),t(R,[2,70]),{17:117,69:N},{17:119,57:118,69:N},{69:[2,57]},{69:[2,58]},{55:120,78:P},{55:122,78:P},{55:123,78:P},{55:124,78:P},t(j,[2,10]),{13:125,82:D},{82:[2,74]},{19:[1,126]},t(O,[2,13]),{19:[1,127]},t(O,[2,15]),{5:[1,128]},t(O,[2,18]),t(O,[2,19]),t(O,[2,21]),t(O,[2,22]),{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[1,129],41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[1,130],41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[1,131],41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},{40:[1,132]},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[2,45],41:v,42:_,43:x,45:k,47:w,49:T,52:[1,133],53:E,58:C,59:S,60:A,61:M,69:N,79:i},{40:[1,134]},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[2,43],41:v,42:_,43:x,45:k,47:w,49:T,51:[1,135],53:E,58:C,59:S,60:A,61:M,69:N,79:i},{40:[1,136]},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[2,41],41:v,42:_,43:x,45:k,47:w,49:T,50:[1,137],53:E,58:C,59:S,60:A,61:M,69:N,79:i},{4:o,5:s,6:41,9:14,10:16,11:6,16:c,17:42,20:l,21:20,22:u,25:h,26:f,27:24,28:25,29:26,30:27,31:28,32:d,33:p,34:g,36:y,38:m,39:b,40:[1,138],41:v,42:_,43:x,45:k,47:w,49:T,53:E,58:C,59:S,60:A,61:M,69:N,79:i},{17:139,69:N},{17:140,69:N},{55:141,78:P},{55:142,78:P},{55:143,78:P},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},t(O,[2,17]),t(O,[2,33]),t(O,[2,34]),t(O,[2,35]),t(O,[2,36]),{19:[1,148]},t(O,[2,37]),{19:[1,149]},t(O,[2,38]),{19:[1,150]},t(O,[2,39]),{55:151,78:P},{55:152,78:P},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:N},t(j,[2,11]),t(O,[2,12]),t(O,[2,14]),t(L,a,{8:108,44:154}),t(I,a,{8:110,46:155}),t(F,a,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],defaultActions:{7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},Y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),79;case 1:return this.begin("type_directive"),80;case 2:return this.popState(),this.begin("arg_directive"),14;case 3:return this.popState(),this.popState(),82;case 4:return 81;case 5:case 52:case 65:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 23;case 12:return this.begin("ID"),16;case 13:return this.begin("ID"),20;case 14:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),69;case 15:return this.popState(),this.popState(),this.begin("LINE"),18;case 16:return this.popState(),this.popState(),5;case 17:return this.begin("LINE"),39;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),52;case 22:return this.begin("LINE"),45;case 23:return this.begin("LINE"),51;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),50;case 26:return this.begin("LINE"),49;case 27:return this.popState(),19;case 28:return 40;case 29:return 64;case 30:return 65;case 31:return 58;case 32:return 59;case 33:return 60;case 34:return 61;case 35:return 56;case 36:return 53;case 37:return this.begin("ID"),25;case 38:return this.begin("ID"),26;case 39:return 32;case 40:return 33;case 41:return this.begin("acc_title"),34;case 42:return this.popState(),"acc_title_value";case 43:return this.begin("acc_descr"),36;case 44:return this.popState(),"acc_descr_value";case 45:this.begin("acc_descr_multiline");break;case 46:this.popState();break;case 47:return"acc_descr_multiline_value";case 48:return 7;case 49:return 22;case 50:return 24;case 51:return 63;case 53:return e.yytext=e.yytext.trim(),69;case 54:return 72;case 55:return 73;case 56:return 70;case 57:return 71;case 58:return 74;case 59:return 75;case 60:return 76;case 61:return 77;case 62:return 78;case 63:return 67;case 64:return 68;case 66:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[46,47],inclusive:!1},acc_descr:{rules:[44],inclusive:!1},acc_title:{rules:[42],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,14],inclusive:!1},ALIAS:{rules:[7,8,15,16],inclusive:!1},LINE:{rules:[7,8,27],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],inclusive:!0}}};function U(){this.yy={}}return z.lexer=Y,U.prototype=z,z.Parser=U,new U}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(1993).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},3584:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,3],r=[1,5],i=[1,7],a=[2,5],o=[1,15],s=[1,17],c=[1,19],l=[1,20],u=[1,21],h=[1,22],f=[1,33],d=[1,23],p=[1,24],g=[1,25],y=[1,26],m=[1,27],b=[1,30],v=[1,31],_=[1,32],x=[1,35],k=[1,36],w=[1,37],T=[1,38],E=[1,34],C=[1,41],S=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],A=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],M=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],N=[4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],D={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,idStatement:11,DESCR:12,"--\x3e":13,HIDE_EMPTY:14,scale:15,WIDTH:16,COMPOSIT_STATE:17,STRUCT_START:18,STRUCT_STOP:19,STATE_DESCR:20,AS:21,ID:22,FORK:23,JOIN:24,CHOICE:25,CONCURRENT:26,note:27,notePosition:28,NOTE_TEXT:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,openDirective:36,typeDirective:37,closeDirective:38,":":39,argDirective:40,direction_tb:41,direction_bt:42,direction_rl:43,direction_lr:44,eol:45,";":46,EDGE_STATE:47,left_of:48,right_of:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",12:"DESCR",13:"--\x3e",14:"HIDE_EMPTY",15:"scale",16:"WIDTH",17:"COMPOSIT_STATE",18:"STRUCT_START",19:"STRUCT_STOP",20:"STATE_DESCR",21:"AS",22:"ID",23:"FORK",24:"JOIN",25:"CHOICE",26:"CONCURRENT",27:"note",29:"NOTE_TEXT",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",39:":",41:"direction_tb",42:"direction_bt",43:"direction_rl",44:"direction_lr",46:";",47:"EDGE_STATE",48:"left_of",49:"right_of",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[45,1],[45,1],[11,1],[11,1],[28,1],[28,1],[36,1],[37,1],[40,1],[38,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 4:return r.setRootDoc(a[s]),a[s];case 5:this.$=[];break;case 6:"nl"!=a[s]&&(a[s-1].push(a[s]),this.$=a[s-1]);break;case 7:case 8:case 39:case 40:this.$=a[s];break;case 9:this.$="nl";break;case 10:this.$={stmt:"state",id:a[s],type:"default",description:""};break;case 11:this.$={stmt:"state",id:a[s-1],type:"default",description:r.trimColon(a[s])};break;case 12:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-2],type:"default",description:""},state2:{stmt:"state",id:a[s],type:"default",description:""}};break;case 13:this.$={stmt:"relation",state1:{stmt:"state",id:a[s-3],type:"default",description:""},state2:{stmt:"state",id:a[s-1],type:"default",description:""},description:a[s].substr(1).trim()};break;case 17:this.$={stmt:"state",id:a[s-3],type:"default",description:"",doc:a[s-1]};break;case 18:var c=a[s],l=a[s-2].trim();if(a[s].match(":")){var u=a[s].split(":");c=u[0],l=[l,u[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 19:this.$={stmt:"state",id:a[s-3],type:"default",description:a[s-5],doc:a[s-1]};break;case 20:this.$={stmt:"state",id:a[s],type:"fork"};break;case 21:this.$={stmt:"state",id:a[s],type:"join"};break;case 22:this.$={stmt:"state",id:a[s],type:"choice"};break;case 23:this.$={stmt:"state",id:r.getDividerId(),type:"divider"};break;case 24:this.$={stmt:"state",id:a[s-1].trim(),note:{position:a[s-2].trim(),text:a[s].trim()}};break;case 28:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 29:case 30:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 33:r.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 34:r.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 35:r.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 36:r.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 43:r.parseDirective("%%{","open_directive");break;case 44:r.parseDirective(a[s],"type_directive");break;case 45:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 46:r.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:n,6:4,7:r,36:6,50:i},{1:[3]},{3:8,4:e,5:n,6:4,7:r,36:6,50:i},{3:9,4:e,5:n,6:4,7:r,36:6,50:i},{3:10,4:e,5:n,6:4,7:r,36:6,50:i},t([1,4,5,14,15,17,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],a,{8:11}),{37:12,51:[1,13]},{51:[2,43]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:28,9:14,10:16,11:18,14:c,15:l,17:u,20:h,22:f,23:d,24:p,25:g,26:y,27:m,30:29,31:b,33:v,35:_,36:6,41:x,42:k,43:w,44:T,47:E,50:i},{38:39,39:[1,40],53:C},t([39,53],[2,44]),t(S,[2,6]),{6:28,10:42,11:18,14:c,15:l,17:u,20:h,22:f,23:d,24:p,25:g,26:y,27:m,30:29,31:b,33:v,35:_,36:6,41:x,42:k,43:w,44:T,47:E,50:i},t(S,[2,8]),t(S,[2,9]),t(S,[2,10],{12:[1,43],13:[1,44]}),t(S,[2,14]),{16:[1,45]},t(S,[2,16],{18:[1,46]}),{21:[1,47]},t(S,[2,20]),t(S,[2,21]),t(S,[2,22]),t(S,[2,23]),{28:48,29:[1,49],48:[1,50],49:[1,51]},t(S,[2,26]),t(S,[2,27]),{32:[1,52]},{34:[1,53]},t(S,[2,30]),t(A,[2,39]),t(A,[2,40]),t(S,[2,33]),t(S,[2,34]),t(S,[2,35]),t(S,[2,36]),t(M,[2,31]),{40:54,52:[1,55]},t(M,[2,46]),t(S,[2,7]),t(S,[2,11]),{11:56,22:f,47:E},t(S,[2,15]),t(N,a,{8:57}),{22:[1,58]},{22:[1,59]},{21:[1,60]},{22:[2,41]},{22:[2,42]},t(S,[2,28]),t(S,[2,29]),{38:61,53:C},{53:[2,45]},t(S,[2,12],{12:[1,62]}),{4:o,5:s,6:28,9:14,10:16,11:18,14:c,15:l,17:u,19:[1,63],20:h,22:f,23:d,24:p,25:g,26:y,27:m,30:29,31:b,33:v,35:_,36:6,41:x,42:k,43:w,44:T,47:E,50:i},t(S,[2,18],{18:[1,64]}),{29:[1,65]},{22:[1,66]},t(M,[2,32]),t(S,[2,13]),t(S,[2,17]),t(N,a,{8:67}),t(S,[2,24]),t(S,[2,25]),{4:o,5:s,6:28,9:14,10:16,11:18,14:c,15:l,17:u,19:[1,68],20:h,22:f,23:d,24:p,25:g,26:y,27:m,30:29,31:b,33:v,35:_,36:6,41:x,42:k,43:w,44:T,47:E,50:i},t(S,[2,19])],defaultActions:{7:[2,43],8:[2,1],9:[2,2],10:[2,3],50:[2,41],51:[2,42],55:[2,45]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},O={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:case 33:return 41;case 1:case 34:return 42;case 2:case 35:return 43;case 3:case 36:return 44;case 4:return this.begin("open_directive"),50;case 5:return this.begin("type_directive"),51;case 6:return this.popState(),this.begin("arg_directive"),39;case 7:return this.popState(),this.popState(),53;case 8:return 52;case 9:case 10:case 12:case 13:case 14:case 15:case 46:case 52:break;case 11:case 66:return 5;case 16:return this.pushState("SCALE"),15;case 17:return 16;case 18:case 24:case 40:case 43:this.popState();break;case 19:return this.begin("acc_title"),31;case 20:return this.popState(),"acc_title_value";case 21:return this.begin("acc_descr"),33;case 22:return this.popState(),"acc_descr_value";case 23:this.begin("acc_descr_multiline");break;case 25:return"acc_descr_multiline_value";case 26:this.pushState("STATE");break;case 27:case 30:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),23;case 28:case 31:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),24;case 29:case 32:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),25;case 37:this.begin("STATE_STRING");break;case 38:return this.popState(),this.pushState("STATE_ID"),"AS";case 39:case 54:return this.popState(),"ID";case 41:return"STATE_DESCR";case 42:return 17;case 44:return this.popState(),this.pushState("struct"),18;case 45:return this.popState(),19;case 47:return this.begin("NOTE"),27;case 48:return this.popState(),this.pushState("NOTE_ID"),48;case 49:return this.popState(),this.pushState("NOTE_ID"),49;case 50:this.popState(),this.pushState("FLOATING_NOTE");break;case 51:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 53:return"NOTE_TEXT";case 55:return this.popState(),this.pushState("NOTE_TEXT"),22;case 56:return this.popState(),e.yytext=e.yytext.substr(2).trim(),29;case 57:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),29;case 58:case 59:return 7;case 60:return 14;case 61:return 47;case 62:return 22;case 63:return e.yytext=e.yytext.trim(),12;case 64:return 13;case 65:return 26;case 67:return"INVALID"}},rules:[/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[13,14],inclusive:!1},close_directive:{rules:[13,14],inclusive:!1},arg_directive:{rules:[7,8,13,14],inclusive:!1},type_directive:{rules:[6,7,13,14],inclusive:!1},open_directive:{rules:[5,13,14],inclusive:!1},struct:{rules:[13,14,26,33,34,35,36,45,46,47,61,62,63,64,65],inclusive:!1},FLOATING_NOTE_ID:{rules:[54],inclusive:!1},FLOATING_NOTE:{rules:[51,52,53],inclusive:!1},NOTE_TEXT:{rules:[56,57],inclusive:!1},NOTE_ID:{rules:[55],inclusive:!1},NOTE:{rules:[48,49,50],inclusive:!1},acc_descr_multiline:{rules:[24,25],inclusive:!1},acc_descr:{rules:[22],inclusive:!1},acc_title:{rules:[20],inclusive:!1},SCALE:{rules:[17,18],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[39],inclusive:!1},STATE_STRING:{rules:[40,41],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[13,14,27,28,29,30,31,32,37,38,42,43,44],inclusive:!1},ID:{rules:[13,14],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,12,14,15,16,19,21,23,26,44,47,58,59,60,61,62,63,64,66,67],inclusive:!0}}};function B(){this.yy={}}return D.lexer=O,B.prototype=D,D.Parser=B,new B}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(3069).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},9763:(t,e,n)=>{t=n.nmd(t);var r=function(){var t=function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n},e=[1,2],n=[1,5],r=[6,9,11,17,18,20,22,23,24,26],i=[1,15],a=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,24],h=[4,6,9,11,17,18,20,22,23,24,26],f={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 3:case 7:case 8:this.$=[];break;case 4:a[s-1].push(a[s]),this.$=a[s-1];break;case 5:case 6:this.$=a[s];break;case 11:r.setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 12:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 13:case 14:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 15:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 16:r.addTask(a[s-1],a[s]),this.$="task";break;case 18:r.parseDirective("%%{","open_directive");break;case 19:r.parseDirective(a[s],"type_directive");break;case 20:a[s]=a[s].trim().replace(/'/g,'"'),r.parseDirective(a[s],"arg_directive");break;case 21:r.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,26:n},{1:[3]},t(r,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:n},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:i,18:a,20:o,22:s,23:c,24:l,26:n},{1:[2,2]},{14:22,15:[1,23],29:u},t([15,29],[2,19]),t(r,[2,8],{1:[2,1]}),t(r,[2,4]),{7:21,10:25,12:4,17:i,18:a,20:o,22:s,23:c,24:l,26:n},t(r,[2,6]),t(r,[2,7]),t(r,[2,11]),{19:[1,26]},{21:[1,27]},t(r,[2,14]),t(r,[2,15]),{25:[1,28]},t(r,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(r,[2,5]),t(r,[2,12]),t(r,[2,13]),t(r,[2,16]),t(h,[2,9]),{14:32,29:u},{29:[2,20]},{11:[1,33]},t(h,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",c=0,l=0,u=0,h=2,f=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(g.yy[y]=this.yy[y]);p.setInput(t,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;a.push(m);var b=p.options&&p.options.ranges;function v(){var t;return"number"!=typeof(t=r.pop()||p.lex()||f)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var _,x,k,w,T,E,C,S,A,M={};;){if(k=n[n.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==_&&(_=v()),w=o[k]&&o[k][_]),void 0===w||!w.length||!w[0]){var N="";for(E in A=[],o[k])this.terminals_[E]&&E>h&&A.push("'"+this.terminals_[E]+"'");N=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:m,expected:A})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+_);switch(w[0]){case 1:n.push(_),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),_=null,x?(_=x,x=null):(l=p.yyleng,s=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if(C=this.productions_[w[1]][1],M.$=i[i.length-C],M._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column},b&&(M._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]),void 0!==(T=this.performAction.apply(M,[s,l,c,g.yy,w[1],i,a].concat(d))))return T;C&&(n=n.slice(0,-1*C*2),i=i.slice(0,-1*C),a=a.slice(0,-1*C)),n.push(this.productions_[w[1]][0]),i.push(M.$),a.push(M._$),S=o[n[n.length-2]][n[n.length-1]],n.push(S);break;case 3:return!0}}return!0}},d={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;ae[0].length)){if(e=n,r=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[r]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,r){switch(n){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};function p(){this.yy={}}return f.lexer=d,p.prototype=f,f.Parser=p,new p}();e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var r=n(9143).readFileSync(n(6470).normalize(t[1]),"utf8");return e.parser.parse(r)},n.c[n.s]===t&&e.main(process.argv.slice(1))},7967:(t,e)=>{"use strict";e.N=void 0;var n=/^([^\w]*)(javascript|data|vbscript)/im,r=/&#(\w+)(^\w|;)?/g,i=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,a=/^([^:]+):/gm,o=[".","/"];e.N=function(t){var e,s=(e=t||"",e.replace(r,(function(t,e){return String.fromCharCode(e)}))).replace(i,"").trim();if(!s)return"about:blank";if(function(t){return o.indexOf(t[0])>-1}(s))return s;var c=s.match(a);if(!c)return s;var l=c[0];return n.test(l)?"about:blank":s}},3841:t=>{t.exports=function(t,e){return t.intersect(e)}},6359:(t,e,n)=>{"use strict";n.d(e,{default:()=>hu});var r=n(1941),i=n.n(r),a={debug:1,info:2,warn:3,error:4,fatal:5},o={debug:function(){},info:function(){},warn:function(){},error:function(){},fatal:function(){}},s=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"fatal";isNaN(t)&&(t=t.toLowerCase(),void 0!==a[t]&&(t=a[t])),o.trace=function(){},o.debug=function(){},o.info=function(){},o.warn=function(){},o.error=function(){},o.fatal=function(){},t<=a.fatal&&(o.fatal=console.error?console.error.bind(console,c("FATAL"),"color: orange"):console.log.bind(console,"",c("FATAL"))),t<=a.error&&(o.error=console.error?console.error.bind(console,c("ERROR"),"color: orange"):console.log.bind(console,"",c("ERROR"))),t<=a.warn&&(o.warn=console.warn?console.warn.bind(console,c("WARN"),"color: orange"):console.log.bind(console,"",c("WARN"))),t<=a.info&&(o.info=console.info?console.info.bind(console,c("INFO"),"color: lightblue"):console.log.bind(console,"",c("INFO"))),t<=a.debug&&(o.debug=console.debug?console.debug.bind(console,c("DEBUG"),"color: lightgreen"):console.log.bind(console,"",c("DEBUG")))},c=function(t){var e=i()().format("ss.SSS");return"%c".concat(e," : ").concat(t," : ")},l=n(7543),u="comm",h="rule",f="decl",d=Math.abs,p=String.fromCharCode;function g(t){return t.trim()}function y(t,e,n){return t.replace(e,n)}function m(t,e){return t.indexOf(e)}function b(t,e){return 0|t.charCodeAt(e)}function v(t,e,n){return t.slice(e,n)}function _(t){return t.length}function x(t){return t.length}function k(t,e){return e.push(t),t}function w(t,e){for(var n="",r=x(t),i=0;i0?b(N,--A):0,C--,10===M&&(C=1,E--),M}function B(){return M=A2||R(M)>3?"":" "}function z(t,e){for(;--e&&B()&&!(M<48||M>102||M>57&&M<65||M>70&&M<97););return F(t,I()+(e<6&&32==L()&&32==B()))}function Y(t){for(;B();)switch(M){case t:return A;case 34:case 39:34!==t&&39!==t&&Y(M);break;case 40:41===t&&Y(t);break;case 92:B()}return A}function U(t,e){for(;B()&&t+M!==57&&(t+M!==84||47!==L()););return"/*"+F(e,A-1)+"*"+p(47===t?t:B())}function $(t){for(;!R(L());)B();return F(t,A)}function W(t){return function(t){return N="",t}(q("",null,null,null,[""],t=function(t){return E=C=1,S=_(N=t),A=0,[]}(t),0,[0],t))}function q(t,e,n,r,i,a,o,s,c){for(var l=0,u=0,h=o,f=0,d=0,g=0,b=1,v=1,x=1,w=0,T="",E=i,C=a,S=r,A=T;v;)switch(g=w,w=B()){case 40:if(108!=g&&58==A.charCodeAt(h-1)){-1!=m(A+=y(P(w),"&","&\f"),"&\f")&&(x=-1);break}case 34:case 39:case 91:A+=P(w);break;case 9:case 10:case 13:case 32:A+=j(g);break;case 92:A+=z(I()-1,7);continue;case 47:switch(L()){case 42:case 47:k(V(U(B(),I()),e,n),c);break;default:A+="/"}break;case 123*b:s[l++]=_(A)*x;case 125*b:case 59:case 0:switch(w){case 0:case 125:v=0;case 59+u:d>0&&_(A)-h&&k(d>32?G(A+";",r,n,h-1):G(y(A," ","")+";",r,n,h-2),c);break;case 59:A+=";";default:if(k(S=H(A,e,n,l,u,i,s,T,E=[],C=[],h),a),123===w)if(0===u)q(A,e,S,S,E,a,h,s,C);else switch(f){case 100:case 109:case 115:q(t,S,S,r&&k(H(t,S,S,0,0,i,s,T,i,E=[],h),C),i,C,h,s,r?E:C);break;default:q(A,S,S,S,[""],C,0,s,C)}}l=u=d=0,b=x=1,T=A="",h=o;break;case 58:h=1+_(A),d=g;default:if(b<1)if(123==w)--b;else if(125==w&&0==b++&&125==O())continue;switch(A+=p(w),w*b){case 38:x=u>0?1:(A+="\f",-1);break;case 44:s[l++]=(_(A)-1)*x,x=1;break;case 64:45===L()&&(A+=P(B())),f=L(),u=h=_(T=A+=$(I())),w++;break;case 45:45===g&&2==_(A)&&(b=0)}}return a}function H(t,e,n,r,i,a,o,s,c,l,u){for(var f=i-1,p=0===i?a:[""],m=x(p),b=0,_=0,k=0;b0?p[w]+" "+T:y(T,/&\f/g,p[w])))&&(c[k++]=E);return D(t,e,n,0===i?h:s,c,l,u)}function V(t,e,n){return D(t,e,n,u,p(M),v(t,2,-2),0)}function G(t,e,n,r){return D(t,e,n,f,v(t,0,r),v(t,r+1,-1),r)}const X="9.1.6";function Z(t){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Z(t)}const Q=function t(e,n,r){var i=Object.assign({depth:2,clobber:!1},r),a=i.depth,o=i.clobber;return Array.isArray(n)&&!Array.isArray(e)?(n.forEach((function(n){return t(e,n,r)})),e):Array.isArray(n)&&Array.isArray(e)?(n.forEach((function(t){-1===e.indexOf(t)&&e.push(t)})),e):void 0===e||a<=0?null!=e&&"object"===Z(e)&&"object"===Z(n)?Object.assign(e,n):n:(void 0!==n&&"object"===Z(e)&&"object"===Z(n)&&Object.keys(n).forEach((function(r){"object"!==Z(n[r])||void 0!==e[r]&&"object"!==Z(e[r])?(o||"object"!==Z(e[r])&&"object"!==Z(n[r]))&&(e[r]=n[r]):(void 0===e[r]&&(e[r]=Array.isArray(n[r])?[]:{}),e[r]=t(e[r],n[r],{depth:a-1,clobber:o}))})),e)},K={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},r)=>{if(!e)return 2.55*n;t/=360,e/=100;const i=(n/=100)<.5?n*(1+e):n+e-n*e,a=2*n-i;switch(r){case"r":return 255*K.hue2rgb(a,i,t+1/3);case"g":return 255*K.hue2rgb(a,i,t);case"b":return 255*K.hue2rgb(a,i,t-1/3)}},rgb2hsl:({r:t,g:e,b:n},r)=>{t/=255,e/=255,n/=255;const i=Math.max(t,e,n),a=Math.min(t,e,n),o=(i+a)/2;if("l"===r)return 100*o;if(i===a)return 0;const s=i-a;if("s"===r)return 100*(o>.5?s/(2-i-a):s/(i+a));switch(i){case t:return 60*((e-n)/s+(ee>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}},tt={};for(let t=0;t<=255;t++)tt[t]=J.unit.dec2hex(t);const et=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new class{constructor(){this.type=0}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=0}is(t){return this.type===t}}}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=0,this}_ensureHSL(){const t=this.data,{h:e,s:n,l:r}=t;void 0===e&&(t.h=J.channel.rgb2hsl(t,"h")),void 0===n&&(t.s=J.channel.rgb2hsl(t,"s")),void 0===r&&(t.l=J.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:n,b:r}=t;void 0===e&&(t.r=J.channel.hsl2rgb(t,"r")),void 0===n&&(t.g=J.channel.hsl2rgb(t,"g")),void 0===r&&(t.b=J.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(2)||void 0===e?(this._ensureHSL(),J.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(2)||void 0===e?(this._ensureHSL(),J.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(2)||void 0===e?(this._ensureHSL(),J.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(1)||void 0===e?(this._ensureRGB(),J.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(1)||void 0===e?(this._ensureRGB(),J.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(1)||void 0===e?(this._ensureRGB(),J.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(1),this.changed=!0,this.data.r=t}set g(t){this.type.set(1),this.changed=!0,this.data.g=t}set b(t){this.type.set(1),this.changed=!0,this.data.b=t}set h(t){this.type.set(2),this.changed=!0,this.data.h=t}set s(t){this.type.set(2),this.changed=!0,this.data.s=t}set l(t){this.type.set(2),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent"),nt={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(nt.re);if(!e)return;const n=e[1],r=parseInt(n,16),i=n.length,a=i%4==0,o=i>4,s=o?1:17,c=o?8:4,l=a?0:-1,u=o?255:15;return et.set({r:(r>>c*(l+3)&u)*s,g:(r>>c*(l+2)&u)*s,b:(r>>c*(l+1)&u)*s,a:a?(r&u)*s/255:1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`#${tt[Math.round(e)]}${tt[Math.round(n)]}${tt[Math.round(r)]}${tt[Math.round(255*i)]}`:`#${tt[Math.round(e)]}${tt[Math.round(n)]}${tt[Math.round(r)]}`}},rt=nt,it={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(it.hueRe);if(e){const[,t,n]=e;switch(n){case"grad":return J.channel.clamp.h(.9*parseFloat(t));case"rad":return J.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return J.channel.clamp.h(360*parseFloat(t))}}return J.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(104!==e&&72!==e)return;const n=t.match(it.re);if(!n)return;const[,r,i,a,o,s]=n;return et.set({h:it._hue2deg(r),s:J.channel.clamp.s(parseFloat(i)),l:J.channel.clamp.l(parseFloat(a)),a:o?J.channel.clamp.a(s?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:n,l:r,a:i}=t;return i<1?`hsla(${J.lang.round(e)}, ${J.lang.round(n)}%, ${J.lang.round(r)}%, ${i})`:`hsl(${J.lang.round(e)}, ${J.lang.round(n)}%, ${J.lang.round(r)}%)`}},at=it,ot={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=ot.colors[t];if(e)return rt.parse(e)},stringify:t=>{const e=rt.stringify(t);for(const t in ot.colors)if(ot.colors[t]===e)return t}},st=ot,ct={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(114!==e&&82!==e)return;const n=t.match(ct.re);if(!n)return;const[,r,i,a,o,s,c,l,u]=n;return et.set({r:J.channel.clamp.r(i?2.55*parseFloat(r):parseFloat(r)),g:J.channel.clamp.g(o?2.55*parseFloat(a):parseFloat(a)),b:J.channel.clamp.b(c?2.55*parseFloat(s):parseFloat(s)),a:l?J.channel.clamp.a(u?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{const{r:e,g:n,b:r,a:i}=t;return i<1?`rgba(${J.lang.round(e)}, ${J.lang.round(n)}, ${J.lang.round(r)}, ${J.lang.round(i)})`:`rgb(${J.lang.round(e)}, ${J.lang.round(n)}, ${J.lang.round(r)})`}},lt=ct,ut={format:{keyword:st,hex:rt,rgb:lt,rgba:lt,hsl:at,hsla:at},parse:t=>{if("string"!=typeof t)return t;const e=rt.parse(t)||lt.parse(t)||at.parse(t)||st.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(2)||void 0===t.data.r?at.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?lt.stringify(t):rt.stringify(t)},ht=(t,e)=>{const n=ut.parse(t);for(const t in e)n[t]=J.channel.clamp[t](e[t]);return ut.stringify(n)},ft=(t,e)=>{const n=ut.parse(t),r={};for(const t in e)e[t]&&(r[t]=n[t]+e[t]);return ht(t,r)},dt=(t,e,n=0,r=1)=>{if("number"!=typeof t)return ht(t,{a:e});const i=et.set({r:J.channel.clamp.r(t),g:J.channel.clamp.g(e),b:J.channel.clamp.b(n),a:J.channel.clamp.a(r)});return ut.stringify(i)},pt=(t,e=100)=>{const n=ut.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,((t,e,n=50)=>{const{r,g:i,b:a,a:o}=ut.parse(t),{r:s,g:c,b:l,a:u}=ut.parse(e),h=n/100,f=2*h-1,d=o-u,p=((f*d==-1?f:(f+d)/(1+f*d))+1)/2,g=1-p;return dt(r*p+s*g,i*p+c*g,a*p+l*g,o*h+u*(1-h))})(n,t,e)},gt=(t,e,n)=>{const r=ut.parse(t),i=r[e],a=J.channel.clamp[e](i+n);return i!==a&&(r[e]=a),ut.stringify(r)},yt=(t,e)=>gt(t,"l",-e),mt=(t,e)=>gt(t,"l",e);var bt=function(t,e){return ft(t,e?{s:-40,l:10}:{s:-40,l:-10})};function vt(t){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vt(t)}function _t(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:"";return Object.keys(e).reduce((function(r,i){return Array.isArray(e[i])?r:"object"===Rt(e[i])&&null!==e[i]?[].concat(It(r),[n+i],It(t(e[i],""))):[].concat(It(r),[n+i])}),[])}(Pt,"");const zt=Pt;function Yt(t){return Yt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yt(t)}var Ut,$t=Object.freeze(zt),Wt=Q({},$t),qt=[],Ht=Q({},$t),Vt=function(t,e){for(var n=Q({},t),r={},i=0;i-1||e[n].indexOf(">")>-1||e[n].indexOf("url(data:")>-1)&&delete e[n],"object"===Yt(e[n])&&t(e[n])}))},Qt=function(t){t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),qt.push(t),Vt(Wt,qt)},Kt=function(){Vt(Wt,qt=[])},Jt=n(7856),te=n.n(Jt),ee=function(t){var e=t.replace(/\\u[\dA-F]{4}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\u/g,""),16))}));return e=(e=(e=e.replace(/\\x([0-9a-f]{2})/gi,(function(t,e){return String.fromCharCode(parseInt(e,16))}))).replace(/\\[\d\d\d]{3}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))).replace(/\\[\d\d\d]{2}/gi,(function(t){return String.fromCharCode(parseInt(t.replace(/\\/g,""),8))}))},ne=function(t){for(var e="",n=0;n>=0;){if(!((n=t.indexOf("=0)){e+=t,n=-1;break}e+=t.substr(0,n),(n=(t=t.substr(n+1)).indexOf("<\/script>"))>=0&&(n+=9,t=t.substr(n))}var r=ee(e);return(r=(r=(r=(r=r.replaceAll(/script>/gi,"#")).replaceAll(/javascript:/gi,"#")).replaceAll(/javascript&colon/gi,"#")).replaceAll(/onerror=/gi,"onerror:")).replaceAll(/')}else"loose"!==s.securityLevel&&(A=te().sanitize(A,{ADD_TAGS:["foreignobject"],ADD_ATTR:["dominant-baseline"]}));if(void 0!==n)switch(m){case"flowchart":case"flowchart-v2":n(A,sa.bindFunctions);break;case"gantt":n(A,fo.bindFunctions);break;case"class":case"classDiagram":n(A,hr.bindFunctions);break;default:n(A)}else o.debug("CB = undefined!");ms.forEach((function(t){t()})),ms=[];var D="sandbox"===s.securityLevel?"#i"+t:"#d"+t,O=(0,l.select)(D).node();return null!==O&&"function"==typeof O.remove&&(0,l.select)(D).node().remove(),A},parse:function(t,e){nu||(ql(),nu=!0);var n=!1;try{var r=e||new Xl(t);return r.db.clear(),r.parse(t)}catch(t){if(n=!0,!hu.parseError)throw t;null!=t.str?hu.parseError(t.str,t.hash):hu.parseError(t)}return!n},parseDirective:function(t,e,n,r){try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":iu={};break;case"type_directive":iu.type=e.toLowerCase();break;case"arg_directive":iu.args=JSON.parse(e);break;case"close_directive":(function(t,e,n){switch(o.debug("Directive type=".concat(e.type," with args:"),e.args),e.type){case"init":case"initialize":["config"].forEach((function(t){void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),o.debug("sanitize in handleDirective",e.args),En(e.args),o.debug("sanitize in handleDirective (done)",e.args),Qt(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":o.warn("themeCss encountered");break;default:o.warn("Unhandled directive: source: '%%{".concat(e.type,": ").concat(JSON.stringify(e.args?e.args:{}),"}%%"),e)}})(t,iu,r),iu=null}}catch(t){o.error("Error while rendering sequenceDiagram directive: ".concat(e," jison context: ").concat(n)),o.error(t.message)}},initialize:function(t){var e;null!=t&&t.fontFamily&&(null!==(e=t.themeVariables)&&void 0!==e&&e.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),function(t){Ut=Q({},t)}(t),null!=t&&t.theme&&Lt[t.theme]?t.themeVariables=Lt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Lt.default.getThemeVariables(t.themeVariables));var n="object"===eu(t)?function(t){return Wt=Q({},$t),Wt=Q(Wt,t),t.theme&&Lt[t.theme]&&(Wt.themeVariables=Lt[t.theme].getThemeVariables(t.themeVariables)),Ht=Vt(Wt,qt),Wt}(t):Gt();au(n),s(n.logLevel),nu||(ql(),nu=!0)},getConfig:Xt,setConfig:function(t){return Q(Ht,t),Xt()},getSiteConfig:Gt,updateSiteConfig:function(t){return Wt=Q(Wt,t),Vt(Wt,qt),Wt},reset:function(){Kt()},globalReset:function(){Kt(),au(Xt())},defaultConfig:$t});s(Xt().logLevel),Kt(Xt());const su=ou;var cu=function(){var t,e,n=su.getConfig();arguments.length>=2?(void 0!==arguments[0]&&(uu.sequenceConfig=arguments[0]),t=arguments[1]):t=arguments[0],"function"==typeof arguments[arguments.length-1]?(e=arguments[arguments.length-1],o.debug("Callback function found")):void 0!==n.mermaid&&("function"==typeof n.mermaid.callback?(e=n.mermaid.callback,o.debug("Callback function found")):o.debug("No Callback function found")),t=void 0===t?document.querySelectorAll(".mermaid"):"string"==typeof t?document.querySelectorAll(t):t instanceof window.Node?[t]:t,o.debug("Start On Load before: "+uu.startOnLoad),void 0!==uu.startOnLoad&&(o.debug("Start On Load inner: "+uu.startOnLoad),su.updateSiteConfig({startOnLoad:uu.startOnLoad})),void 0!==uu.ganttConfig&&su.updateSiteConfig({gantt:uu.ganttConfig});for(var r,i=new Sn.initIdGenerator(n.deterministicIds,n.deterministicIDSeed),a=function(n){var a=t[n];if(a.getAttribute("data-processed"))return"continue";a.setAttribute("data-processed",!0);var s="mermaid-".concat(i.next());r=a.innerHTML,r=Sn.entityDecode(r).trim().replace(//gi,"
");var c=Sn.detectInit(r);c&&o.debug("Detected early reinit: ",c);try{su.render(s,r,(function(t,n){a.innerHTML=t,void 0!==e&&e(s),n&&n(a)}),a)}catch(t){throw o.warn("Catching Error (bootstrap)"),{error:t,message:t.str}}},s=0;s{t.exports={graphlib:n(6614),dagre:n(6478),intersect:n(8114),render:n(5787),util:n(8355),version:n(5689)}},9144:(t,e,n)=>{var r=n(8355);function i(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}t.exports={default:i,normal:i,vee:function(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])},undirected:function(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");r.applyStyle(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}}},5632:(t,e,n)=>{var r=n(8355),i=n(4322),a=n(1322);t.exports=function(t,e){var n,o=e.nodes().filter((function(t){return r.isSubgraph(e,t)})),s=t.selectAll("g.cluster").data(o,(function(t){return t}));return s.selectAll("*").remove(),s.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0),s=t.selectAll("g.cluster"),r.applyTransition(s,e).style("opacity",1),s.each((function(t){var n=e.node(t),r=i.select(this);i.select(this).append("rect");var o=r.append("g").attr("class","label");a(o,n,n.clusterLabelPos)})),s.selectAll("rect").each((function(t){var n=e.node(t),a=i.select(this);r.applyStyle(a,n.style)})),n=s.exit?s.exit():s.selectAll(null),r.applyTransition(n,e).style("opacity",0).remove(),s}},6315:(t,e,n)=>{"use strict";var r=n(1034),i=n(1322),a=n(8355),o=n(4322);t.exports=function(t,e){var n,s=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return a.edgeToId(t)})).classed("update",!0);return s.exit().remove(),s.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(s=t.selectAll("g.edgeLabel")).each((function(t){var n=o.select(this);n.select(".label").remove();var a=e.edge(t),s=i(n,e.edge(t),0,0).classed("label",!0),c=s.node().getBBox();a.labelId&&s.attr("id",a.labelId),r.has(a,"width")||(a.width=c.width),r.has(a,"height")||(a.height=c.height)})),n=s.exit?s.exit():s.selectAll(null),a.applyTransition(n,e).style("opacity",0).remove(),s}},940:(t,e,n)=>{"use strict";var r=n(1034),i=n(3042),a=n(8355),o=n(4322);function s(t,e){var n=(o.line||o.svg.line)().x((function(t){return t.x})).y((function(t){return t.y}));return(n.curve||n.interpolate)(t.curve),n(e)}t.exports=function(t,e,n){var c=t.selectAll("g.edgePath").data(e.edges(),(function(t){return a.edgeToId(t)})).classed("update",!0),l=function(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),i=e.node(t.v).elem;return s(n,r.range(n.points.length).map((function(){return e=(t=i).getBBox(),{x:(n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:n.f};var t,e,n})))})),n.append("defs"),n}(c,e);!function(t,e){var n=t.exit();a.applyTransition(n,e).style("opacity",0).remove()}(c,e);var u=void 0!==c.merge?c.merge(l):c;return a.applyTransition(u,e).style("opacity",1),u.each((function(t){var n=o.select(this),r=e.edge(t);r.elem=this,r.id&&n.attr("id",r.id),a.applyClass(n,r.class,(n.classed("update")?"update ":"")+"edgePath")})),u.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=r.uniqueId("arrowhead");var c=o.select(this).attr("marker-end",(function(){return"url("+(t=location.href,e=n.arrowheadId,t.split("#")[0]+"#"+e+")");var t,e})).style("fill","none");a.applyTransition(c,e).attr("d",(function(t){return function(t,e){var n=t.edge(e),r=t.node(e.v),a=t.node(e.w),o=n.points.slice(1,n.points.length-1);return o.unshift(i(r,o[0])),o.push(i(a,o[o.length-1])),s(n,o)}(e,t)})),a.applyStyle(c,n.style)})),u.selectAll("defs *").remove(),u.selectAll("defs").each((function(t){var r=e.edge(t);(0,n[r.arrowhead])(o.select(this),r.arrowheadId,r,"arrowhead")})),u}},607:(t,e,n)=>{"use strict";var r=n(1034),i=n(1322),a=n(8355),o=n(4322);t.exports=function(t,e,n){var s,c=e.nodes().filter((function(t){return!a.isSubgraph(e,t)})),l=t.selectAll("g.node").data(c,(function(t){return t})).classed("update",!0);return l.exit().remove(),l.enter().append("g").attr("class","node").style("opacity",0),(l=t.selectAll("g.node")).each((function(t){var s=e.node(t),c=o.select(this);a.applyClass(c,s.class,(c.classed("update")?"update ":"")+"node"),c.select("g.label").remove();var l=c.append("g").attr("class","label"),u=i(l,s),h=n[s.shape],f=r.pick(u.node().getBBox(),"width","height");s.elem=this,s.id&&c.attr("id",s.id),s.labelId&&l.attr("id",s.labelId),r.has(s,"width")&&(f.width=s.width),r.has(s,"height")&&(f.height=s.height),f.width+=s.paddingLeft+s.paddingRight,f.height+=s.paddingTop+s.paddingBottom,l.attr("transform","translate("+(s.paddingLeft-s.paddingRight)/2+","+(s.paddingTop-s.paddingBottom)/2+")");var d=o.select(this);d.select(".label-container").remove();var p=h(d,f,s).classed("label-container",!0);a.applyStyle(p,s.style);var g=p.node().getBBox();s.width=g.width,s.height=g.height})),s=l.exit?l.exit():l.selectAll(null),a.applyTransition(s,e).style("opacity",0).remove(),l}},4322:(t,e,n)=>{var r;if(!r)try{r=n(7543)}catch(t){}r||(r=window.d3),t.exports=r},6478:(t,e,n)=>{var r;try{r=n(681)}catch(t){}r||(r=window.dagre),t.exports=r},6614:(t,e,n)=>{var r;try{r=n(8282)}catch(t){}r||(r=window.graphlib),t.exports=r},8114:(t,e,n)=>{t.exports={node:n(3042),circle:n(6587),ellipse:n(3260),polygon:n(5337),rect:n(8049)}},6587:(t,e,n)=>{var r=n(3260);t.exports=function(t,e,n){return r(t,e,e,n)}},3260:t=>{t.exports=function(t,e,n,r){var i=t.x,a=t.y,o=i-r.x,s=a-r.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);r.x{function e(t,e){return t*e>0}t.exports=function(t,n,r,i){var a,o,s,c,l,u,h,f,d,p,g,y,m;if(!(a=n.y-t.y,s=t.x-n.x,l=n.x*t.y-t.x*n.y,d=a*r.x+s*r.y+l,p=a*i.x+s*i.y+l,0!==d&&0!==p&&e(d,p)||(o=i.y-r.y,c=r.x-i.x,u=i.x*r.y-r.x*i.y,h=o*t.x+c*t.y+u,f=o*n.x+c*n.y+u,0!==h&&0!==f&&e(h,f)||0==(g=a*c-o*s))))return y=Math.abs(g/2),{x:(m=s*u-c*l)<0?(m-y)/g:(m+y)/g,y:(m=o*l-a*u)<0?(m-y)/g:(m+y)/g}}},3042:t=>{t.exports=function(t,e){return t.intersect(e)}},5337:(t,e,n)=>{var r=n(6808);t.exports=function(t,e,n){var i=t.x,a=t.y,o=[],s=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY;e.forEach((function(t){s=Math.min(s,t.x),c=Math.min(c,t.y)}));for(var l=i-t.width/2-s,u=a-t.height/2-c,h=0;h1&&o.sort((function(t,e){var r=t.x-n.x,i=t.y-n.y,a=Math.sqrt(r*r+i*i),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return a{t.exports=function(t,e){var n,r,i=t.x,a=t.y,o=e.x-i,s=e.y-a,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,r=l):(o<0&&(c=-c),n=c,r=0===o?0:c*s/o),{x:i+n,y:a+r}}},8284:(t,e,n)=>{var r=n(8355);t.exports=function(t,e){var n=t.append("foreignObject").attr("width","100000"),i=n.append("xhtml:div");i.attr("xmlns","http://www.w3.org/1999/xhtml");var a=e.label;switch(typeof a){case"function":i.insert(a);break;case"object":i.insert((function(){return a}));break;default:i.html(a)}r.applyStyle(i,e.labelStyle),i.style("display","inline-block"),i.style("white-space","nowrap");var o=i.node().getBoundingClientRect();return n.attr("width",o.width).attr("height",o.height),n}},1322:(t,e,n)=>{var r=n(7318),i=n(8284),a=n(8287);t.exports=function(t,e,n){var o=e.label,s=t.append("g");"svg"===e.labelType?a(s,e):"string"!=typeof o||"html"===e.labelType?i(s,e):r(s,e);var c,l=s.node().getBBox();switch(n){case"top":c=-e.height/2;break;case"bottom":c=e.height/2-l.height;break;default:c=-l.height/2}return s.attr("transform","translate("+-l.width/2+","+c+")"),s}},8287:(t,e,n)=>{var r=n(8355);t.exports=function(t,e){var n=t;return n.node().appendChild(e.label),r.applyStyle(n,e.labelStyle),n}},7318:(t,e,n)=>{var r=n(8355);t.exports=function(t,e){for(var n=t.append("text"),i=function(t){for(var e,n="",r=!1,i=0;i{var r;try{r={defaults:n(1747),each:n(6073),isFunction:n(3560),isPlainObject:n(8630),pick:n(9722),has:n(8721),range:n(6026),uniqueId:n(3955)}}catch(t){}r||(r=window._),t.exports=r},6381:(t,e,n)=>{"use strict";var r=n(8355),i=n(4322);t.exports=function(t,e){var n=t.filter((function(){return!i.select(this).classed("update")}));function a(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",a),r.applyTransition(t,e).style("opacity",1).attr("transform",a),r.applyTransition(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}},4577:(t,e,n)=>{"use strict";var r=n(8355),i=n(4322),a=n(1034);t.exports=function(t,e){function n(t){var n=e.edge(t);return a.has(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!i.select(this).classed("update")})).attr("transform",n),r.applyTransition(t,e).style("opacity",1).attr("transform",n)}},4849:(t,e,n)=>{"use strict";var r=n(8355),i=n(4322);t.exports=function(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!i.select(this).classed("update")})).attr("transform",n),r.applyTransition(t,e).style("opacity",1).attr("transform",n)}},5787:(t,e,n)=>{var r=n(1034),i=n(4322),a=n(6478).layout;t.exports=function(){var t=n(607),e=n(5632),i=n(6315),l=n(940),u=n(4849),h=n(4577),f=n(6381),d=n(4418),p=n(9144),g=function(n,g){!function(t){t.nodes().forEach((function(e){var n=t.node(e);r.has(n,"label")||t.children(e).length||(n.label=e),r.has(n,"paddingX")&&r.defaults(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),r.has(n,"paddingY")&&r.defaults(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),r.has(n,"padding")&&r.defaults(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.defaults(n,o),r.each(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),r.has(n,"width")&&(n._prevWidth=n.width),r.has(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);r.has(n,"label")||(n.label=""),r.defaults(n,s)}))}(g);var y=c(n,"output"),m=c(y,"clusters"),b=c(y,"edgePaths"),v=i(c(y,"edgeLabels"),g),_=t(c(y,"nodes"),g,d);a(g),u(_,g),h(v,g),l(b,g,p);var x=e(m,g);f(x,g),function(t){r.each(t.nodes(),(function(e){var n=t.node(e);r.has(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,r.has(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(g)};return g.createNodes=function(e){return arguments.length?(t=e,g):t},g.createClusters=function(t){return arguments.length?(e=t,g):e},g.createEdgeLabels=function(t){return arguments.length?(i=t,g):i},g.createEdgePaths=function(t){return arguments.length?(l=t,g):l},g.shapes=function(t){return arguments.length?(d=t,g):d},g.arrows=function(t){return arguments.length?(p=t,g):p},g};var o={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},s={arrowhead:"normal",curve:i.curveLinear};function c(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}},4418:(t,e,n)=>{"use strict";var r=n(8049),i=n(3260),a=n(6587),o=n(5337);t.exports={rect:function(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return r(n,t)},i},ellipse:function(t,e,n){var r=e.width/2,a=e.height/2,o=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",r).attr("ry",a);return n.intersect=function(t){return i(n,r,a,t)},o},circle:function(t,e,n){var r=Math.max(e.width,e.height)/2,i=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",r);return n.intersect=function(t){return a(n,r,t)},i},diamond:function(t,e,n){var r=e.width*Math.SQRT2/2,i=e.height*Math.SQRT2/2,a=[{x:0,y:-i},{x:-r,y:0},{x:0,y:i},{x:r,y:0}],s=t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return o(n,a,t)},s}}},8355:(t,e,n)=>{var r=n(1034);t.exports={isSubgraph:function(t,e){return!!t.children(e).length},edgeToId:function(t){return a(t.v)+":"+a(t.w)+":"+a(t.name)},applyStyle:function(t,e){e&&t.attr("style",e)},applyClass:function(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))},applyTransition:function(t,e){var n=e.graph();if(r.isPlainObject(n)){var i=n.transition;if(r.isFunction(i))return i(t)}return t}};var i=/:/g;function a(t){return t?String(t).replace(i,"\\:"):""}},5689:t=>{t.exports="0.6.4"},681:(t,e,n)=>{t.exports={graphlib:n(574),layout:n(8123),debug:n(7570),util:{time:n(1138).time,notime:n(1138).notime},version:n(8177)}},2188:(t,e,n)=>{"use strict";var r=n(8436),i=n(4079);t.exports={run:function(t){var e="greedy"===t.graph().acyclicer?i(t,function(t){return function(e){return t.edge(e).weight}}(t)):function(t){var e=[],n={},i={};return r.forEach(t.nodes(),(function a(o){r.has(i,o)||(i[o]=!0,n[o]=!0,r.forEach(t.outEdges(o),(function(t){r.has(n,t.w)?e.push(t):a(t.w)})),delete n[o])})),e}(t);r.forEach(e,(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,r.uniqueId("rev"))}))},undo:function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var r=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,r)}}))}}},1133:(t,e,n)=>{var r=n(8436),i=n(1138);function a(t,e,n,r,a,o){var s={width:0,height:0,rank:o,borderType:e},c=a[e][o-1],l=i.addDummyNode(t,"border",s,n);a[e][o]=l,t.setParent(l,r),c&&t.setEdge(c,l,{weight:1})}t.exports=function(t){r.forEach(t.children(),(function e(n){var i=t.children(n),o=t.node(n);if(i.length&&r.forEach(i,e),r.has(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s{"use strict";var r=n(8436);function i(t){r.forEach(t.nodes(),(function(e){a(t.node(e))})),r.forEach(t.edges(),(function(e){a(t.edge(e))}))}function a(t){var e=t.width;t.width=t.height,t.height=e}function o(t){t.y=-t.y}function s(t){var e=t.x;t.x=t.y,t.y=e}t.exports={adjust:function(t){var e=t.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||i(t)},undo:function(t){var e=t.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(t){r.forEach(t.nodes(),(function(e){o(t.node(e))})),r.forEach(t.edges(),(function(e){var n=t.edge(e);r.forEach(n.points,o),r.has(n,"y")&&o(n)}))}(t),"lr"!==e&&"rl"!==e||(function(t){r.forEach(t.nodes(),(function(e){s(t.node(e))})),r.forEach(t.edges(),(function(e){var n=t.edge(e);r.forEach(n.points,s),r.has(n,"x")&&s(n)}))}(t),i(t))}}},7822:t=>{function e(){var t={};t._next=t._prev=t,this._sentinel=t}function n(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function r(t,e){if("_next"!==t&&"_prev"!==t)return e}t.exports=e,e.prototype.dequeue=function(){var t=this._sentinel,e=t._prev;if(e!==t)return n(e),e},e.prototype.enqueue=function(t){var e=this._sentinel;t._prev&&t._next&&n(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e},e.prototype.toString=function(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,r)),n=n._prev;return"["+t.join(", ")+"]"}},7570:(t,e,n)=>{var r=n(8436),i=n(1138),a=n(574).Graph;t.exports={debugOrdering:function(t){var e=i.buildLayerMatrix(t),n=new a({compound:!0,multigraph:!0}).setGraph({});return r.forEach(t.nodes(),(function(e){n.setNode(e,{label:e}),n.setParent(e,"layer"+t.node(e).rank)})),r.forEach(t.edges(),(function(t){n.setEdge(t.v,t.w,{},t.name)})),r.forEach(e,(function(t,e){var i="layer"+e;n.setNode(i,{rank:"same"}),r.reduce(t,(function(t,e){return n.setEdge(t,e,{style:"invis"}),e}))})),n}}},574:(t,e,n)=>{var r;try{r=n(8282)}catch(t){}r||(r=window.graphlib),t.exports=r},4079:(t,e,n)=>{var r=n(8436),i=n(574).Graph,a=n(7822);t.exports=function(t,e){if(t.nodeCount()<=1)return[];var n=function(t,e){var n=new i,o=0,s=0;r.forEach(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),r.forEach(t.edges(),(function(t){var r=n.edge(t.v,t.w)||0,i=e(t),a=r+i;n.setEdge(t.v,t.w,a),s=Math.max(s,n.node(t.v).out+=i),o=Math.max(o,n.node(t.w).in+=i)}));var l=r.range(s+o+3).map((function(){return new a})),u=o+1;return r.forEach(n.nodes(),(function(t){c(l,u,n.node(t))})),{graph:n,buckets:l,zeroIdx:u}}(t,e||o),l=function(t,e,n){for(var r,i=[],a=e[e.length-1],o=e[0];t.nodeCount();){for(;r=o.dequeue();)s(t,e,n,r);for(;r=a.dequeue();)s(t,e,n,r);if(t.nodeCount())for(var c=e.length-2;c>0;--c)if(r=e[c].dequeue()){i=i.concat(s(t,e,n,r,!0));break}}return i}(n.graph,n.buckets,n.zeroIdx);return r.flatten(r.map(l,(function(e){return t.outEdges(e.v,e.w)})),!0)};var o=r.constant(1);function s(t,e,n,i,a){var o=a?[]:void 0;return r.forEach(t.inEdges(i.v),(function(r){var i=t.edge(r),s=t.node(r.v);a&&o.push({v:r.v,w:r.w}),s.out-=i,c(e,n,s)})),r.forEach(t.outEdges(i.v),(function(r){var i=t.edge(r),a=r.w,o=t.node(a);o.in-=i,c(e,n,o)})),t.removeNode(i.v),o}function c(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}},8123:(t,e,n)=>{"use strict";var r=n(8436),i=n(2188),a=n(5995),o=n(8093),s=n(1138).normalizeRanks,c=n(4219),l=n(1138).removeEmptyRanks,u=n(2981),h=n(1133),f=n(3258),d=n(3408),p=n(7873),g=n(1138),y=n(574).Graph;t.exports=function(t,e){var n=e&&e.debugTiming?g.time:g.notime;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return function(t){var e=new y({multigraph:!0,compound:!0}),n=C(t.graph());return e.setGraph(r.merge({},b,E(n,m),r.pick(n,v))),r.forEach(t.nodes(),(function(n){var i=C(t.node(n));e.setNode(n,r.defaults(E(i,_),x)),e.setParent(n,t.parent(n))})),r.forEach(t.edges(),(function(n){var i=C(t.edge(n));e.setEdge(n,r.merge({},w,E(i,k),r.pick(i,T)))})),e}(t)}));n(" runLayout",(function(){!function(t,e){e(" makeSpaceForEdgeLabels",(function(){!function(t){var e=t.graph();e.ranksep/=2,r.forEach(t.edges(),(function(n){var r=t.edge(n);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(t)})),e(" removeSelfEdges",(function(){!function(t){r.forEach(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}}))}(t)})),e(" acyclic",(function(){i.run(t)})),e(" nestingGraph.run",(function(){u.run(t)})),e(" rank",(function(){o(g.asNonCompoundGraph(t))})),e(" injectEdgeLabelProxies",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var r=t.node(e.v),i={rank:(t.node(e.w).rank-r.rank)/2+r.rank,e};g.addDummyNode(t,"edge-proxy",i,"_ep")}}))}(t)})),e(" removeEmptyRanks",(function(){l(t)})),e(" nestingGraph.cleanup",(function(){u.cleanup(t)})),e(" normalizeRanks",(function(){s(t)})),e(" assignRankMinMax",(function(){!function(t){var e=0;r.forEach(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=r.max(e,i.maxRank))})),t.graph().maxRank=e}(t)})),e(" removeEdgeLabelProxies",(function(){!function(t){r.forEach(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t)})),e(" normalize.run",(function(){a.run(t)})),e(" parentDummyChains",(function(){c(t)})),e(" addBorderSegments",(function(){h(t)})),e(" order",(function(){d(t)})),e(" insertSelfEdges",(function(){!function(t){var e=g.buildLayerMatrix(t);r.forEach(e,(function(e){var n=0;r.forEach(e,(function(e,i){var a=t.node(e);a.order=i+n,r.forEach(a.selfEdges,(function(e){g.addDummyNode(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")})),delete a.selfEdges}))}))}(t)})),e(" adjustCoordinateSystem",(function(){f.adjust(t)})),e(" position",(function(){p(t)})),e(" positionSelfEdges",(function(){!function(t){r.forEach(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var r=t.node(n.e.v),i=r.x+r.width/2,a=r.y,o=n.x-i,s=r.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:i+2*o/3,y:a-s},{x:i+5*o/6,y:a-s},{x:i+o,y:a},{x:i+5*o/6,y:a+s},{x:i+2*o/3,y:a+s}],n.label.x=n.x,n.label.y=n.y}}))}(t)})),e(" removeBorderNodes",(function(){!function(t){r.forEach(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),o=t.node(r.last(n.borderLeft)),s=t.node(r.last(n.borderRight));n.width=Math.abs(s.x-o.x),n.height=Math.abs(a.y-i.y),n.x=o.x+n.width/2,n.y=i.y+n.height/2}})),r.forEach(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}(t)})),e(" normalize.undo",(function(){a.undo(t)})),e(" fixupEdgeLabelCoords",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);if(r.has(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t)})),e(" undoCoordinateSystem",(function(){f.undo(t)})),e(" translateGraph",(function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,o=t.graph(),s=o.marginx||0,c=o.marginy||0;function l(t){var r=t.x,o=t.y,s=t.width,c=t.height;e=Math.min(e,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}r.forEach(t.nodes(),(function(e){l(t.node(e))})),r.forEach(t.edges(),(function(e){var n=t.edge(e);r.has(n,"x")&&l(n)})),e-=s,i-=c,r.forEach(t.nodes(),(function(n){var r=t.node(n);r.x-=e,r.y-=i})),r.forEach(t.edges(),(function(n){var a=t.edge(n);r.forEach(a.points,(function(t){t.x-=e,t.y-=i})),r.has(a,"x")&&(a.x-=e),r.has(a,"y")&&(a.y-=i)})),o.width=n-e+s,o.height=a-i+c}(t)})),e(" assignNodeIntersects",(function(){!function(t){r.forEach(t.edges(),(function(e){var n,r,i=t.edge(e),a=t.node(e.v),o=t.node(e.w);i.points?(n=i.points[0],r=i.points[i.points.length-1]):(i.points=[],n=o,r=a),i.points.unshift(g.intersectRect(a,n)),i.points.push(g.intersectRect(o,r))}))}(t)})),e(" reversePoints",(function(){!function(t){r.forEach(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}(t)})),e(" acyclic.undo",(function(){i.undo(t)}))}(e,n)})),n(" updateInputGraph",(function(){!function(t,e){r.forEach(t.nodes(),(function(n){var r=t.node(n),i=e.node(n);r&&(r.x=i.x,r.y=i.y,e.children(n).length&&(r.width=i.width,r.height=i.height))})),r.forEach(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.has(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)}))}))};var m=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],_=["width","height"],x={width:0,height:0},k=["minlen","weight","width","height","labeloffset"],w={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},T=["labelpos"];function E(t,e){return r.mapValues(r.pick(t,e),Number)}function C(t){var e={};return r.forEach(t,(function(t,n){e[n.toLowerCase()]=t})),e}},8436:(t,e,n)=>{var r;try{r={cloneDeep:n(361),constant:n(5703),defaults:n(1747),each:n(6073),filter:n(3105),find:n(3311),flatten:n(5564),forEach:n(4486),forIn:n(2620),has:n(8721),isUndefined:n(2353),last:n(928),map:n(5161),mapValues:n(6604),max:n(6162),merge:n(3857),min:n(3632),minBy:n(2762),now:n(7771),pick:n(9722),range:n(6026),reduce:n(4061),sortBy:n(9734),uniqueId:n(3955),values:n(2628),zipObject:n(7287)}}catch(t){}r||(r=window._),t.exports=r},2981:(t,e,n)=>{var r=n(8436),i=n(1138);function a(t,e,n,o,s,c,l){var u=t.children(l);if(u.length){var h=i.addBorderNode(t,"_bt"),f=i.addBorderNode(t,"_bb"),d=t.node(l);t.setParent(h,l),d.borderTop=h,t.setParent(f,l),d.borderBottom=f,r.forEach(u,(function(r){a(t,e,n,o,s,c,r);var i=t.node(r),u=i.borderTop?i.borderTop:r,d=i.borderBottom?i.borderBottom:r,p=i.borderTop?o:2*o,g=u!==d?1:s-c[l]+1;t.setEdge(h,u,{weight:p,minlen:g,nestingEdge:!0}),t.setEdge(d,f,{weight:p,minlen:g,nestingEdge:!0})})),t.parent(l)||t.setEdge(e,h,{weight:0,minlen:s+c[l]})}else l!==e&&t.setEdge(e,l,{weight:0,minlen:n})}t.exports={run:function(t){var e=i.addDummyNode(t,"root",{},"_root"),n=function(t){var e={};function n(i,a){var o=t.children(i);o&&o.length&&r.forEach(o,(function(t){n(t,a+1)})),e[i]=a}return r.forEach(t.children(),(function(t){n(t,1)})),e}(t),o=r.max(r.values(n))-1,s=2*o+1;t.graph().nestingRoot=e,r.forEach(t.edges(),(function(e){t.edge(e).minlen*=s}));var c=function(t){return r.reduce(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}(t)+1;r.forEach(t.children(),(function(r){a(t,e,s,c,o,n,r)})),t.graph().nodeRankFactor=s},cleanup:function(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,r.forEach(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}}},5995:(t,e,n)=>{"use strict";var r=n(8436),i=n(1138);t.exports={run:function(t){t.graph().dummyChains=[],r.forEach(t.edges(),(function(e){!function(t,e){var n,r,a,o=e.v,s=t.node(o).rank,c=e.w,l=t.node(c).rank,u=e.name,h=t.edge(e),f=h.labelRank;if(l!==s+1){for(t.removeEdge(e),a=0,++s;s{var r=n(8436);t.exports=function(t,e,n){var i,a={};r.forEach(n,(function(n){for(var r,o,s=t.parent(n);s;){if((r=t.parent(s))?(o=a[r],a[r]=s):(o=i,i=s),o&&o!==s)return void e.setEdge(o,s);s=r}}))}},5439:(t,e,n)=>{var r=n(8436);t.exports=function(t,e){return r.map(e,(function(e){var n=t.inEdges(e);if(n.length){var i=r.reduce(n,(function(e,n){var r=t.edge(n),i=t.node(n.v);return{sum:e.sum+r.weight*i.order,weight:e.weight+r.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))}},3128:(t,e,n)=>{var r=n(8436),i=n(574).Graph;t.exports=function(t,e,n){var a=function(t){for(var e;t.hasNode(e=r.uniqueId("_root")););return e}(t),o=new i({compound:!0}).setGraph({root:a}).setDefaultNodeLabel((function(e){return t.node(e)}));return r.forEach(t.nodes(),(function(i){var s=t.node(i),c=t.parent(i);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(o.setNode(i),o.setParent(i,c||a),r.forEach(t[n](i),(function(e){var n=e.v===i?e.w:e.v,a=o.edge(n,i),s=r.isUndefined(a)?0:a.weight;o.setEdge(n,i,{weight:t.edge(e).weight+s})})),r.has(s,"minRank")&&o.setNode(i,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))})),o}},6630:(t,e,n)=>{"use strict";var r=n(8436);function i(t,e,n){for(var i=r.zipObject(n,r.map(n,(function(t,e){return e}))),a=r.flatten(r.map(e,(function(e){return r.sortBy(r.map(t.outEdges(e),(function(e){return{pos:i[e.w],weight:t.edge(e).weight}})),"pos")})),!0),o=1;o0;)e%2&&(n+=c[e+1]),c[e=e-1>>1]+=t.weight;l+=t.weight*n}))),l}t.exports=function(t,e){for(var n=0,r=1;r{"use strict";var r=n(8436),i=n(2588),a=n(6630),o=n(1026),s=n(3128),c=n(5093),l=n(574).Graph,u=n(1138);function h(t,e,n){return r.map(e,(function(e){return s(t,e,n)}))}function f(t,e){var n=new l;r.forEach(t,(function(t){var i=t.graph().root,a=o(t,i,n,e);r.forEach(a.vs,(function(e,n){t.node(e).order=n})),c(t,n,a.vs)}))}function d(t,e){r.forEach(e,(function(e){r.forEach(e,(function(e,n){t.node(e).order=n}))}))}t.exports=function(t){var e=u.maxRank(t),n=h(t,r.range(1,e+1),"inEdges"),o=h(t,r.range(e-1,-1,-1),"outEdges"),s=i(t);d(t,s);for(var c,l=Number.POSITIVE_INFINITY,p=0,g=0;g<4;++p,++g){f(p%2?n:o,p%4>=2),s=u.buildLayerMatrix(t);var y=a(t,s);y{"use strict";var r=n(8436);t.exports=function(t){var e={},n=r.filter(t.nodes(),(function(e){return!t.children(e).length})),i=r.max(r.map(n,(function(e){return t.node(e).rank}))),a=r.map(r.range(i+1),(function(){return[]})),o=r.sortBy(n,(function(e){return t.node(e).rank}));return r.forEach(o,(function n(i){if(!r.has(e,i)){e[i]=!0;var o=t.node(i);a[o.rank].push(i),r.forEach(t.successors(i),n)}})),a}},9567:(t,e,n)=>{"use strict";var r=n(8436);t.exports=function(t,e){var n={};return r.forEach(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};r.isUndefined(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),r.forEach(e.edges(),(function(t){var e=n[t.v],i=n[t.w];r.isUndefined(e)||r.isUndefined(i)||(i.indegree++,e.out.push(n[t.w]))})),function(t){var e=[];function n(t){return function(e){var n,i,a,o;e.merged||(r.isUndefined(e.barycenter)||r.isUndefined(t.barycenter)||e.barycenter>=t.barycenter)&&(i=e,a=0,o=0,(n=t).weight&&(a+=n.barycenter*n.weight,o+=n.weight),i.weight&&(a+=i.barycenter*i.weight,o+=i.weight),n.vs=i.vs.concat(n.vs),n.barycenter=a/o,n.weight=o,n.i=Math.min(i.i,n.i),i.merged=!0)}}function i(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),r.forEach(a.in.reverse(),n(a)),r.forEach(a.out,i(a))}return r.map(r.filter(e,(function(t){return!t.merged})),(function(t){return r.pick(t,["vs","i","barycenter","weight"])}))}(r.filter(n,(function(t){return!t.indegree})))}},1026:(t,e,n)=>{var r=n(8436),i=n(5439),a=n(9567),o=n(7304);t.exports=function t(e,n,s,c){var l=e.children(n),u=e.node(n),h=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,d={};h&&(l=r.filter(l,(function(t){return t!==h&&t!==f})));var p=i(e,l);r.forEach(p,(function(n){if(e.children(n.v).length){var i=t(e,n.v,s,c);d[n.v]=i,r.has(i,"barycenter")&&(a=n,o=i,r.isUndefined(a.barycenter)?(a.barycenter=o.barycenter,a.weight=o.weight):(a.barycenter=(a.barycenter*a.weight+o.barycenter*o.weight)/(a.weight+o.weight),a.weight+=o.weight))}var a,o}));var g=a(p,s);!function(t,e){r.forEach(t,(function(t){t.vs=r.flatten(t.vs.map((function(t){return e[t]?e[t].vs:t})),!0)}))}(g,d);var y=o(g,c);if(h&&(y.vs=r.flatten([h,y.vs,f],!0),e.predecessors(h).length)){var m=e.node(e.predecessors(h)[0]),b=e.node(e.predecessors(f)[0]);r.has(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+m.order+b.order)/(y.weight+2),y.weight+=2}return y}},7304:(t,e,n)=>{var r=n(8436),i=n(1138);function a(t,e,n){for(var i;e.length&&(i=r.last(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}t.exports=function(t,e){var n,o=i.partition(t,(function(t){return r.has(t,"barycenter")})),s=o.lhs,c=r.sortBy(o.rhs,(function(t){return-t.i})),l=[],u=0,h=0,f=0;s.sort((n=!!e,function(t,e){return t.barycentere.barycenter?1:n?e.i-t.i:t.i-e.i})),f=a(l,c,f),r.forEach(s,(function(t){f+=t.vs.length,l.push(t.vs),u+=t.barycenter*t.weight,h+=t.weight,f=a(l,c,f)}));var d={vs:r.flatten(l,!0)};return h&&(d.barycenter=u/h,d.weight=h),d}},4219:(t,e,n)=>{var r=n(8436);t.exports=function(t){var e=function(t){var e={},n=0;return r.forEach(t.children(),(function i(a){var o=n;r.forEach(t.children(a),i),e[a]={low:o,lim:n++}})),e}(t);r.forEach(t.graph().dummyChains,(function(n){for(var r=t.node(n),i=r.edgeObj,a=function(t,e,n,r){var i,a,o=[],s=[],c=Math.min(e[n].low,e[r].low),l=Math.max(e[n].lim,e[r].lim);i=n;do{i=t.parent(i),o.push(i)}while(i&&(e[i].low>c||l>e[i].lim));for(a=i,i=r;(i=t.parent(i))!==a;)s.push(i);return{path:o.concat(s.reverse()),lca:a}}(t,e,i.v,i.w),o=a.path,s=a.lca,c=0,l=o[c],u=!0;n!==i.w;){if(r=t.node(n),u){for(;(l=o[c])!==s&&t.node(l).maxRank{"use strict";var r=n(8436),i=n(574).Graph,a=n(1138);function o(t,e){var n={};return r.reduce(e,(function(e,i){var a=0,o=0,s=e.length,l=r.last(i);return r.forEach(i,(function(e,u){var h=function(t,e){if(t.node(e).dummy)return r.find(t.predecessors(e),(function(e){return t.node(e).dummy}))}(t,e),f=h?t.node(h).order:s;(h||e===l)&&(r.forEach(i.slice(o,u+1),(function(e){r.forEach(t.predecessors(e),(function(r){var i=t.node(r),o=i.order;!(os)&&c(n,e,l)}))}))}return r.reduce(e,(function(e,n){var a,o=-1,s=0;return r.forEach(n,(function(r,c){if("border"===t.node(r).dummy){var l=t.predecessors(r);l.length&&(a=t.node(l[0]).order,i(n,s,c,o,a),s=c,o=a)}i(n,s,n.length,a,e.length)})),n})),n}function c(t,e,n){if(e>n){var r=e;e=n,n=r}var i=t[e];i||(t[e]=i={}),i[n]=!0}function l(t,e,n){if(e>n){var i=e;e=n,n=i}return r.has(t[e],n)}function u(t,e,n,i){var a={},o={},s={};return r.forEach(e,(function(t){r.forEach(t,(function(t,e){a[t]=t,o[t]=t,s[t]=e}))})),r.forEach(e,(function(t){var e=-1;r.forEach(t,(function(t){var c=i(t);if(c.length){c=r.sortBy(c,(function(t){return s[t]}));for(var u=(c.length-1)/2,h=Math.floor(u),f=Math.ceil(u);h<=f;++h){var d=c[h];o[t]===t&&e{"use strict";var r=n(8436),i=n(1138),a=n(3573).positionX;t.exports=function(t){(function(t){var e=i.buildLayerMatrix(t),n=t.graph().ranksep,a=0;r.forEach(e,(function(e){var i=r.max(r.map(e,(function(e){return t.node(e).height})));r.forEach(e,(function(e){t.node(e).y=a+i/2})),a+=i+n}))})(t=i.asNonCompoundGraph(t)),r.forEach(a(t),(function(e,n){t.node(n).x=e}))}},300:(t,e,n)=>{"use strict";var r=n(8436),i=n(574).Graph,a=n(6681).slack;function o(t,e){return r.forEach(t.nodes(),(function n(i){r.forEach(e.nodeEdges(i),(function(r){var o=r.v,s=i===o?r.w:o;t.hasNode(s)||a(e,r)||(t.setNode(s,{}),t.setEdge(i,s,{}),n(s))}))})),t.nodeCount()}function s(t,e){return r.minBy(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return a(e,n)}))}function c(t,e,n){r.forEach(t.nodes(),(function(t){e.node(t).rank+=n}))}t.exports=function(t){var e,n,r=new i({directed:!1}),l=t.nodes()[0],u=t.nodeCount();for(r.setNode(l,{});o(r,t){"use strict";var r=n(6681).longestPath,i=n(300),a=n(2472);t.exports=function(t){switch(t.graph().ranker){case"network-simplex":default:!function(t){a(t)}(t);break;case"tight-tree":!function(t){r(t),i(t)}(t);break;case"longest-path":o(t)}};var o=r},2472:(t,e,n)=>{"use strict";var r=n(8436),i=n(300),a=n(6681).slack,o=n(6681).longestPath,s=n(574).alg.preorder,c=n(574).alg.postorder,l=n(1138).simplify;function u(t){t=l(t),o(t);var e,n=i(t);for(d(n),h(n,t);e=g(n);)m(n,t,e,y(n,t,e))}function h(t,e){var n=c(t,t.nodes());n=n.slice(0,n.length-1),r.forEach(n,(function(n){!function(t,e,n){var r=t.node(n).parent;t.edge(n,r).cutvalue=f(t,e,n)}(t,e,n)}))}function f(t,e,n){var i=t.node(n).parent,a=!0,o=e.edge(n,i),s=0;return o||(a=!1,o=e.edge(i,n)),s=o.weight,r.forEach(e.nodeEdges(n),(function(r){var o,c,l=r.v===n,u=l?r.w:r.v;if(u!==i){var h=l===a,f=e.edge(r).weight;if(s+=h?f:-f,o=n,c=u,t.hasEdge(o,c)){var d=t.edge(n,u).cutvalue;s+=h?-d:d}}})),s}function d(t,e){arguments.length<2&&(e=t.nodes()[0]),p(t,{},1,e)}function p(t,e,n,i,a){var o=n,s=t.node(i);return e[i]=!0,r.forEach(t.neighbors(i),(function(a){r.has(e,a)||(n=p(t,e,n,a,i))})),s.low=o,s.lim=n++,a?s.parent=a:delete s.parent,n}function g(t){return r.find(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function y(t,e,n){var i=n.v,o=n.w;e.hasEdge(i,o)||(i=n.w,o=n.v);var s=t.node(i),c=t.node(o),l=s,u=!1;s.lim>c.lim&&(l=c,u=!0);var h=r.filter(e.edges(),(function(e){return u===b(0,t.node(e.v),l)&&u!==b(0,t.node(e.w),l)}));return r.minBy(h,(function(t){return a(e,t)}))}function m(t,e,n,i){var a=n.v,o=n.w;t.removeEdge(a,o),t.setEdge(i.v,i.w,{}),d(t),h(t,e),function(t,e){var n=r.find(t.nodes(),(function(t){return!e.node(t).parent})),i=s(t,n);i=i.slice(1),r.forEach(i,(function(n){var r=t.node(n).parent,i=e.edge(n,r),a=!1;i||(i=e.edge(r,n),a=!0),e.node(n).rank=e.node(r).rank+(a?i.minlen:-i.minlen)}))}(t,e)}function b(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}t.exports=u,u.initLowLimValues=d,u.initCutValues=h,u.calcCutValue=f,u.leaveEdge=g,u.enterEdge=y,u.exchangeEdges=m},6681:(t,e,n)=>{"use strict";var r=n(8436);t.exports={longestPath:function(t){var e={};r.forEach(t.sources(),(function n(i){var a=t.node(i);if(r.has(e,i))return a.rank;e[i]=!0;var o=r.min(r.map(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return o!==Number.POSITIVE_INFINITY&&null!=o||(o=0),a.rank=o}))},slack:function(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}}},1138:(t,e,n)=>{"use strict";var r=n(8436),i=n(574).Graph;function a(t,e,n,i){var a;do{a=r.uniqueId(i)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function o(t){return r.max(r.map(t.nodes(),(function(e){var n=t.node(e).rank;if(!r.isUndefined(n))return n})))}t.exports={addDummyNode:a,simplify:function(t){var e=(new i).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){var r=e.edge(n.v,n.w)||{weight:0,minlen:1},i=t.edge(n);e.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})})),e},asNonCompoundGraph:function(t){var e=new i({multigraph:t.isMultigraph()}).setGraph(t.graph());return r.forEach(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),r.forEach(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e},successorWeights:function(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.outEdges(e),(function(e){n[e.w]=(n[e.w]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)},predecessorWeights:function(t){var e=r.map(t.nodes(),(function(e){var n={};return r.forEach(t.inEdges(e),(function(e){n[e.v]=(n[e.v]||0)+t.edge(e).weight})),n}));return r.zipObject(t.nodes(),e)},intersectRect:function(t,e){var n,r,i=t.x,a=t.y,o=e.x-i,s=e.y-a,c=t.width/2,l=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=l*o/s,r=l):(o<0&&(c=-c),n=c,r=c*s/o),{x:i+n,y:a+r}},buildLayerMatrix:function(t){var e=r.map(r.range(o(t)+1),(function(){return[]}));return r.forEach(t.nodes(),(function(n){var i=t.node(n),a=i.rank;r.isUndefined(a)||(e[a][i.order]=n)})),e},normalizeRanks:function(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank})));r.forEach(t.nodes(),(function(n){var i=t.node(n);r.has(i,"rank")&&(i.rank-=e)}))},removeEmptyRanks:function(t){var e=r.min(r.map(t.nodes(),(function(e){return t.node(e).rank}))),n=[];r.forEach(t.nodes(),(function(r){var i=t.node(r).rank-e;n[i]||(n[i]=[]),n[i].push(r)}));var i=0,a=t.graph().nodeRankFactor;r.forEach(n,(function(e,n){r.isUndefined(e)&&n%a!=0?--i:i&&r.forEach(e,(function(e){t.node(e).rank+=i}))}))},addBorderNode:function(t,e,n,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),a(t,"border",i,e)},maxRank:o,partition:function(t,e){var n={lhs:[],rhs:[]};return r.forEach(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n},time:function(t,e){var n=r.now();try{return e()}finally{console.log(t+" time: "+(r.now()-n)+"ms")}},notime:function(t,e){return e()}}},8177:t=>{t.exports="0.8.5"},7856:function(t){t.exports=function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,n){return e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(t,n)}function n(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function r(t,i,a){return r=n()?Reflect.construct:function(t,n,r){var i=[null];i.push.apply(i,n);var a=new(Function.bind.apply(t,i));return r&&e(a,r.prototype),a},r.apply(null,arguments)}function i(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?n-1:0),i=1;i/gm),q=f(/^data-[\-\w.\u00B7-\uFFFF]/),H=f(/^aria-[\-\w]+$/),V=f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),G=f(/^(?:\w+script|data):/i),X=f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Z=f(/^html$/i),Q=function(){return"undefined"==typeof window?null:window},K=function(e,n){if("object"!==t(e)||"function"!=typeof e.createPolicy)return null;var r=null,i="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(i)&&(r=n.currentScript.getAttribute(i));var a="dompurify"+(r?"#"+r:"");try{return e.createPolicy(a,{createHTML:function(t){return t},createScriptURL:function(t){return t}})}catch(t){return console.warn("TrustedTypes policy "+a+" could not be created."),null}};return function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Q(),r=function(t){return e(t)};if(r.version="2.3.10",r.removed=[],!n||!n.document||9!==n.document.nodeType)return r.isSupported=!1,r;var a=n.document,o=n.document,s=n.DocumentFragment,c=n.HTMLTemplateElement,l=n.Node,u=n.Element,f=n.NodeFilter,d=n.NamedNodeMap,p=void 0===d?n.NamedNodeMap||n.MozNamedAttrMap:d,g=n.HTMLFormElement,y=n.DOMParser,m=n.trustedTypes,A=u.prototype,J=D(A,"cloneNode"),tt=D(A,"nextSibling"),et=D(A,"childNodes"),nt=D(A,"parentNode");if("function"==typeof c){var rt=o.createElement("template");rt.content&&rt.content.ownerDocument&&(o=rt.content.ownerDocument)}var it=K(m,a),at=it?it.createHTML(""):"",ot=o,st=ot.implementation,ct=ot.createNodeIterator,lt=ot.createDocumentFragment,ut=ot.getElementsByTagName,ht=a.importNode,ft={};try{ft=N(o).documentMode?o.documentMode:{}}catch(t){}var dt={};r.isSupported="function"==typeof nt&&st&&void 0!==st.createHTMLDocument&&9!==ft;var pt,gt,yt=$,mt=W,bt=q,vt=H,_t=G,xt=X,kt=V,wt=null,Tt=M({},[].concat(i(O),i(B),i(L),i(F),i(P))),Et=null,Ct=M({},[].concat(i(j),i(z),i(Y),i(U))),St=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),At=null,Mt=null,Nt=!0,Dt=!0,Ot=!1,Bt=!1,Lt=!1,It=!1,Ft=!1,Rt=!1,Pt=!1,jt=!1,zt=!0,Yt=!0,Ut=!1,$t={},Wt=null,qt=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ht=null,Vt=M({},["audio","video","img","source","image","track"]),Gt=null,Xt=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Zt="http://www.w3.org/1998/Math/MathML",Qt="http://www.w3.org/2000/svg",Kt="http://www.w3.org/1999/xhtml",Jt=Kt,te=!1,ee=["application/xhtml+xml","text/html"],ne="text/html",re=null,ie=o.createElement("form"),ae=function(t){return t instanceof RegExp||t instanceof Function},oe=function(e){re&&re===e||(e&&"object"===t(e)||(e={}),e=N(e),pt=pt=-1===ee.indexOf(e.PARSER_MEDIA_TYPE)?ne:e.PARSER_MEDIA_TYPE,gt="application/xhtml+xml"===pt?function(t){return t}:x,wt="ALLOWED_TAGS"in e?M({},e.ALLOWED_TAGS,gt):Tt,Et="ALLOWED_ATTR"in e?M({},e.ALLOWED_ATTR,gt):Ct,Gt="ADD_URI_SAFE_ATTR"in e?M(N(Xt),e.ADD_URI_SAFE_ATTR,gt):Xt,Ht="ADD_DATA_URI_TAGS"in e?M(N(Vt),e.ADD_DATA_URI_TAGS,gt):Vt,Wt="FORBID_CONTENTS"in e?M({},e.FORBID_CONTENTS,gt):qt,At="FORBID_TAGS"in e?M({},e.FORBID_TAGS,gt):{},Mt="FORBID_ATTR"in e?M({},e.FORBID_ATTR,gt):{},$t="USE_PROFILES"in e&&e.USE_PROFILES,Nt=!1!==e.ALLOW_ARIA_ATTR,Dt=!1!==e.ALLOW_DATA_ATTR,Ot=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Bt=e.SAFE_FOR_TEMPLATES||!1,Lt=e.WHOLE_DOCUMENT||!1,Rt=e.RETURN_DOM||!1,Pt=e.RETURN_DOM_FRAGMENT||!1,jt=e.RETURN_TRUSTED_TYPE||!1,Ft=e.FORCE_BODY||!1,zt=!1!==e.SANITIZE_DOM,Yt=!1!==e.KEEP_CONTENT,Ut=e.IN_PLACE||!1,kt=e.ALLOWED_URI_REGEXP||kt,Jt=e.NAMESPACE||Kt,e.CUSTOM_ELEMENT_HANDLING&&ae(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(St.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ae(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(St.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(St.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Bt&&(Dt=!1),Pt&&(Rt=!0),$t&&(wt=M({},i(P)),Et=[],!0===$t.html&&(M(wt,O),M(Et,j)),!0===$t.svg&&(M(wt,B),M(Et,z),M(Et,U)),!0===$t.svgFilters&&(M(wt,L),M(Et,z),M(Et,U)),!0===$t.mathMl&&(M(wt,F),M(Et,Y),M(Et,U))),e.ADD_TAGS&&(wt===Tt&&(wt=N(wt)),M(wt,e.ADD_TAGS,gt)),e.ADD_ATTR&&(Et===Ct&&(Et=N(Et)),M(Et,e.ADD_ATTR,gt)),e.ADD_URI_SAFE_ATTR&&M(Gt,e.ADD_URI_SAFE_ATTR,gt),e.FORBID_CONTENTS&&(Wt===qt&&(Wt=N(Wt)),M(Wt,e.FORBID_CONTENTS,gt)),Yt&&(wt["#text"]=!0),Lt&&M(wt,["html","head","body"]),wt.table&&(M(wt,["tbody"]),delete At.tbody),h&&h(e),re=e)},se=M({},["mi","mo","mn","ms","mtext"]),ce=M({},["foreignobject","desc","title","annotation-xml"]),le=M({},["title","style","font","a","script"]),ue=M({},B);M(ue,L),M(ue,I);var he=M({},F);M(he,R);var fe=function(t){var e=nt(t);e&&e.tagName||(e={namespaceURI:Kt,tagName:"template"});var n=x(t.tagName),r=x(e.tagName);return t.namespaceURI===Qt?e.namespaceURI===Kt?"svg"===n:e.namespaceURI===Zt?"svg"===n&&("annotation-xml"===r||se[r]):Boolean(ue[n]):t.namespaceURI===Zt?e.namespaceURI===Kt?"math"===n:e.namespaceURI===Qt?"math"===n&&ce[r]:Boolean(he[n]):t.namespaceURI===Kt&&!(e.namespaceURI===Qt&&!ce[r])&&!(e.namespaceURI===Zt&&!se[r])&&!he[n]&&(le[n]||!ue[n])},de=function(t){_(r.removed,{element:t});try{t.parentNode.removeChild(t)}catch(e){try{t.outerHTML=at}catch(e){t.remove()}}},pe=function(t,e){try{_(r.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){_(r.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!Et[t])if(Rt||Pt)try{de(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}},ge=function(t){var e,n;if(Ft)t=""+t;else{var r=k(t,/^[\r\n\t ]+/);n=r&&r[0]}"application/xhtml+xml"===pt&&(t=''+t+"");var i=it?it.createHTML(t):t;if(Jt===Kt)try{e=(new y).parseFromString(i,pt)}catch(t){}if(!e||!e.documentElement){e=st.createDocument(Jt,"template",null);try{e.documentElement.innerHTML=te?"":i}catch(t){}}var a=e.body||e.documentElement;return t&&n&&a.insertBefore(o.createTextNode(n),a.childNodes[0]||null),Jt===Kt?ut.call(e,Lt?"html":"body")[0]:Lt?e.documentElement:a},ye=function(t){return ct.call(t.ownerDocument||t,t,f.SHOW_ELEMENT|f.SHOW_COMMENT|f.SHOW_TEXT,null,!1)},me=function(t){return t instanceof g&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof p)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore)},be=function(e){return"object"===t(l)?e instanceof l:e&&"object"===t(e)&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},ve=function(t,e,n){dt[t]&&b(dt[t],(function(t){t.call(r,e,n,re)}))},_e=function(t){var e;if(ve("beforeSanitizeElements",t,null),me(t))return de(t),!0;if(C(/[\u0080-\uFFFF]/,t.nodeName))return de(t),!0;var n=gt(t.nodeName);if(ve("uponSanitizeElement",t,{tagName:n,allowedTags:wt}),t.hasChildNodes()&&!be(t.firstElementChild)&&(!be(t.content)||!be(t.content.firstElementChild))&&C(/<[/\w]/g,t.innerHTML)&&C(/<[/\w]/g,t.textContent))return de(t),!0;if("select"===n&&C(/

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¥vSDr=uFf8I*m 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..bec0d2dc --- /dev/null +++ b/docs/index.md @@ -0,0 +1,150 @@ +plugin logo + +# Gradle Analytics Plugin +[![CircleCI](https://circleci.com/gh/janbarari/gradle-analytics-plugin/tree/develop.svg?style=svg)](https://circleci.com/gh/janbarari/gradle-analytics-plugin/tree/develop) +[![codecov](https://codecov.io/gh/janbarari/gradle-analytics-plugin/branch/develop/graph/badge.svg)](https://codecov.io/gh/janbarari/gradle-analytics-plugin) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=janbarari_gradle-analytics-plugin&metric=alert_status)](https://sonarcloud.io/dashboard?id=janbarari_gradle-analytics-plugin) + +A free Gradle plugin to analyze your project builds. It provides unique visual and text metrics in HTML format. + +
+Below you can see the metrics provided by the plugin 👇 + +!!! Note "" + + To understand the metrics and report that plugin provides, It is required to understand Gradle basics and how this build + system works.
https://docs.gradle.org/current/userguide/what_is_gradle.html + +## Build Status +An overview of metrics results of the `requested task` in the build processes over the aforementioned period. + +![](img/build-status.png) + +
+## Initialization Process +Gradle supports single and multi-project builds. During the initialization process, Gradle determines which projects are going to take part in the build, and creates a Project instance for each of these projects. By adding more projects or modules the process will take longer. + +It denotes the average initialization process time over the report period. + +![](img/initialization-process.png) + +
+## Configuration Process +Constructs and configures the task graph for the build and then determines which tasks need to run and in which order, based on the task the user wants to run. Be careful about the tasks you register to the project and try to make them cacheable. + +It shows the average configuration process time over the report period. + +![](img/configuration-process.png) + +
+## Dependency Resolve Process +Downloading and resolving the project's dependencies is one of the configuration process' stages. If the project has multiple third-party libraries dependencies, make sure that you have a good network speed. + +It represents the download(Dependency Resolve) process average duration during the report period. + +![](img/dependency-resolve-process.png) + +
+## Execution Process +Runs the selected tasks based on `requested tasks` task tree. Gradle executes `requested task` according to the dependency order. + +It represents the Execution Process average duration during the report period. + +![](img/execution-process.png) + +
+## Modules Execution Process +It represents the (Median) process execution time of each module over the report period. + +![](img/module-execution-process-1.png) +![](img/module-execution-process-2.png) + +
+## Overall Build Process +It represents the average duration of overall build process. + +![](img/overall-build-process.png) + +
+## Modules Source Count +It represents the project and its modules source file count. (files with extension of kt, java). + +![](img/modules-source-count.png) + +
+## Modules Source Size +It represents the project and its modules source file size. + +![](img/modules-source-size.png) + +
+## Modules Method Count +It represents the project and its modules source method count. + +![](img/modules-method-count.png) + +
+## Cache Hit +Gradle creates a cache for the executed task to be reused in the next incremental builds, the more cached tasks lead to faster builds. + +It represents the project and modules tasks average cache hit rate (tasks run with FROM_CACHE or UP_TO_DATE). + +![](img/cache-hit.png) + +
+## Successful Build Rate +It represents the successful build rate of the `requested task` during the report period. + +![](img/successful-build-rate.png) + +
+## Modules Crash Count +It represents how many build failures happened during the `requested task` execution caused by project modules during the report period. + +![](img/modules-crash-count.png) + +
+## Parallel Execution Rate +Gradle uses CPU cores to execute more tasks simultaneously, leading to a faster build. + +It represents a rate that how much time was saved in the execution of the build process with parallel execution versus real elapsed time. + +![](img/parallel-execution-rate.png) + +
+## Modules Dependency Graph +It represents the project module's dependency graph and their connection types. + +Modules have colors that warm colors have represents more dependent modules, and It is recommended to have fewer warm color modules because by applying any change in these modules, all other dependent modules need to rebuild and this cost more time and resources from your machines and put the builds in queue. + +![](img/modules-dependency-graph.png) + +
+## Modules Execution Timeline +It represents the latest modules execution process timeline graph. + +![](img/modules-execution-timeline.png) + +
+## Modules Build Heatmap +This plugin uses `Modules Cache Usage` and `Modules Dependency Graph` to generate this metric that shows how many times a module was built during the report period. + +Each bar has the name of the module and the number of dependent modules, smaller warm bars lead to faster builds as those modules with warm colors have more dependent modules. + +In addition, it helps to modify the modular structure by tracing the graph and finding the cause to avoid rebuilding the modules that are most shared with others. + +![](img/modules-build-heatmap.png) + +
+## Dependency Details +It represents the project(including all modules) dependencies with their sizes. + +![](img/dependency-details.png) + +
+## Non-cacheable Tasks +These tasks are executed in the `requested task` tree without being cached. Try to avoid creating tasks that are not cacheable. Track this chart and detect tasks that are time-consuming. + +![](img/non-cacheable-tasks.png) + +


\ No newline at end of file diff --git a/docs/license.md b/docs/license.md new file mode 100644 index 00000000..fe3467d9 --- /dev/null +++ b/docs/license.md @@ -0,0 +1,21 @@ +# License +MIT License
+Copyright © 2022 Mehdi Janbarari (@janbarari) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/privacy-policy.md b/docs/privacy-policy.md new file mode 100644 index 00000000..c1befdbe --- /dev/null +++ b/docs/privacy-policy.md @@ -0,0 +1,2 @@ +# Privacy Policy +Gradle Analytics Plugin does NOT send any collected data to any server apart from the user's own database config. It uses offline HTML renders to provide the analytics, So there is no need to upload any data from the database. \ No newline at end of file diff --git a/docs/report-bug.md b/docs/report-bug.md new file mode 100644 index 00000000..7e602a55 --- /dev/null +++ b/docs/report-bug.md @@ -0,0 +1,4 @@ +# Report Bug +I appreciate reporting the bugs and crashes in the plugin. In order to submit please use either below ways: + +[Github Link](https://github.com/janbarari/gradle-analytics-plugin/issues/new?title=RB:) or [Send Me Email](mailto:mehdi.janbarari@outlook.com?subject=[GAP]%20Report%20Bug) diff --git a/docs/request-feature.md b/docs/request-feature.md new file mode 100644 index 00000000..4346242d --- /dev/null +++ b/docs/request-feature.md @@ -0,0 +1,4 @@ +# Request Feature +I thankfully appreciate to send me your ideas about new features. In order to submit your ideas please use the below ways: + +[Github Link](https://github.com/janbarari/gradle-analytics-plugin/issues/new?title=RF:) or [Send Me Email](mailto:mehdi.janbarari@outlook.com?subject=[GAP]%20Request%20Feature) diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 00000000..a42f1bed --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,107 @@ +# Setup +To set up the plugin in your project, follow the below instructions: + +### Step 1 +Make sure your project uses Git VCS. +!!! Note "" + + Gradle Analytics Plugin uses Git terminal to get the branch names and latest HEAD commit hash. + so It is required for your project to use Git VCS. + +

+ +### Step 2 +Apply the Gradle Plugin to the root of your project. +=== "Kotlin" + ``` kotlin + plugins { + id("io.github.janbarari.gradle-analytics-plugin") version "1.0.0-beta1" + } + ``` +=== "Groovy" + ``` groovy + plugins { + id "io.github.janbarari.gradle-analytics-plugin" version "1.0.0-beta1" + } + ``` +[For legacy plugin application, see the Gradle Plugin Portal.](https://plugins.gradle.org/plugin/io.github.janbarari.gradle-analytics-plugin) +

+ +### Step 3 +Add plugin configuration in the root of your project. + +=== "Kotlin" + ``` kotlin + gradleAnalyticsPlugin { + database { + local = sqlite { + path = "DATABASE_PATH" + name = "DATABASE_NAME" + user = "DATABASE_USER" + password = "DATABASE_PASSWORD" + } + ci = mysql { + host = "MYSQL_DATABASE_HOST", + name = "MYSQL_DATABASE_NAME", + user = "MYSQL_DATABASE_USER", + password = "MYSQL_DATABASE_PASSWORD" + port = MYSQL_DATABASE_PORT // Default is 3306 + } + } + + trackingTasks = listOf( + // Add your requested tasks to be analyzed, Example: + ":app:assembleDebug" + ) + + trackingBranches = listOf( + // requested tasks only analyzed in the branches you add here, Example: + "master", + "develop" + ) + + outputPath = "OUTPUT_REPORT_PATH" + } + ``` +=== "Groovy" + ``` groovy + gradleAnalyticsPlugin { + database { + local = sqlite { + path = "DATABASE_PATH" + name = "DATABASE_NAME" + user = "DATABASE_USER" + password = "DATABASE_PASSWORD" + } + ci = mysql { + host = "MYSQL_DATABASE_HOST", + name = "MYSQL_DATABASE_NAME", + user = "MYSQL_DATABASE_USER", + password = "MYSQL_DATABASE_PASSWORD" + port = MYSQL_DATABASE_PORT // Default is 3306 + } + } + + trackingTasks = [ + // Add your requested tasks to be analyzed, Example: + ":app:assembleDebug" + ] + + trackingBranches = [ + // requested tasks only analyzed in the branches you add here, Example: + "master", + "develop" + ] + + outputPath = "OUTPUT_REPORT_PATH" + } + ``` +
+Important Notes
+ +- If you don't have a sqlite database, the plugin will create one automatically. You only need to the `name` and `path` for it. +- You can choose both `sqlite / mysql` for `local` or `ci`. +- You can skip `local` or `ci` database if you don't need analytics on each of them. +- If you use `ci` make sure the `CI=true` environment variable exists in your CI system environments. + +
diff --git a/docs/special-thanks.md b/docs/special-thanks.md new file mode 100644 index 00000000..e10da739 --- /dev/null +++ b/docs/special-thanks.md @@ -0,0 +1,7 @@ +# Special Thanks +I am very proud to give special thanks to those around me in making and presenting this open source project. + +I am grateful to Yazdan Sharifi(@yazdan-sharifi2020), who helped write the plugin report renders. + +Best regards,
+Mehdi diff --git a/docs/support.md b/docs/support.md new file mode 100644 index 00000000..99809751 --- /dev/null +++ b/docs/support.md @@ -0,0 +1,15 @@ +# Support +Gradle Analytics Plugin is Open Source and completely free, I spent more than a year analyzing build bottlenecks and finding a way to track them, and finally implemented it into the plugin. + +Of course, this project will be continued as a free open-source project. But to give me some energy, you can use either below ways to support me. + +Send me Crypto
+Bitcoin: bc1q8ecepuax6je6s70j4l76nr978w34msc929sfuf +
+Tether(ERC20): 0x2f23a4F4502C5e699777f3F89da6Ba965C7800FF + +Don't forget to tap the ⭐ button on the project [Github link](https://github.com/janbarari/gradle-analytics-plugin). + + +Thanks,
+Mehdi \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 7fc6f1ff..3a600d2f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,13 @@ kotlin.code.style=official +org.gradle.warning.mode=all + +pluginWebsite = https://github.com/janbarari/gradle-analytics-plugin +pluginVcsUrl = https://github.com/janbarari/gradle-analytics-plugin.git +pluginId = io.github.janbarari.gradle-analytics-plugin +pluginDisplayName = gradle-analytics-plugin +pluginDescription = A free Gradle plugin to analyze your project builds. It provides unique visual and text metrics in HTML format. +pluginTags = kotlin,plugin,analytics,analysis,gradle,gradle-plugin,gradle-plugins,build,metrics,performance,tracker +pluginImplementationClass = io.github.janbarari.gradle.analytics.GradleAnalyticsPlugin +pluginDeclarationName = gradleAnalyticsPlugin +pluginGroupPackageName = io.github.janbarari +pluginVersion = 1.0.0-beta1 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..5010b008 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,25 @@ +[versions] +kotlin = "1.6.20" +detekt = "1.20.0-RC2" +sqlite_driver = "3.36.0.3" +mysql_driver = "8.0.29" +jetbrains_exposed = "0.38.1" +moshi = "1.13.0" +commons-io = "2.11.0" +mockk = "1.12.4" +coroutines = "1.6.3" + +[libraries] +sqlite_driver = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite_driver" } +mysql_driver = { module = "mysql:mysql-connector-java", version.ref = "mysql_driver" } +jetbrains_exposed_core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "jetbrains_exposed" } +jetbrains_exposed_jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "jetbrains_exposed" } +moshi = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" } +moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" } +commons-io = { module = "commons-io:commons-io", version.ref = "commons-io" } +mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } +coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } + +[plugins] +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 05679dc3..92f06b50 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..507bb448 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,46 @@ +site_name: Gradle Analytics Plugin +site_url: https://janbarari.github.io/gradle-analytics-plugin/ +repo_name: Gradle Analytics Plugin +repo_url: https://github.com/janbarari/gradle-analytics-plugin/ +site_description: A free Gradle plugin to analyze your project builds. It provides unique visual and text metrics in the HTML format. +site_author: Mehdi Janbarari + +nav: + - Overview: index.md + - Setup: setup.md + - Getting Report: getting-report.md + - Changelog: changelog.md + - Support: support.md + - Contribution: contribution.md + - Privacy & Policy: privacy-policy.md + - Request Feature: request-feature.md + - Report Bug: report-bug.md + - Special Thanks: special-thanks.md + - License: license.md + +theme: + name: material + palette: + primary: white + logo: img/plugin-logo.png + favicon: img/plugin-logo.png + features: + - header.autohide + +markdown_extensions: + - codehilite + - admonition + - pymdownx.superfences + - pymdownx.inlinehilite + - pymdownx.tabbed: + alternate_style: true + +copyright: Made with 🧡 for everyone | Copyright © 2022 + +extra: + generator: false + social: + - icon: fontawesome/brands/twitter + link: https://twitter.com/medicodroid + - icon: fontawesome/brands/github + link: https://github.com/janbarari \ No newline at end of file diff --git a/plugin-logo.png b/plugin-logo.png old mode 100644 new mode 100755 diff --git a/privacy-policy.md b/privacy-policy.md new file mode 100644 index 00000000..c23fb6a3 --- /dev/null +++ b/privacy-policy.md @@ -0,0 +1,4 @@ +# Privacy policy + +This plugin does NOT send any collected data to any server apart from the user's own database config. This plugin uses +offline HTML renders to provide the analytics, So there is no need to upload any data from the database. \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index a24240d5..4190815c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1 @@ rootProject.name = "gradle-analytics-plugin" - diff --git a/src/main/kotlin/Mehdi.kt b/src/main/kotlin/Mehdi.kt deleted file mode 100644 index 51212fda..00000000 --- a/src/main/kotlin/Mehdi.kt +++ /dev/null @@ -1,5 +0,0 @@ -class Mehdi { - fun getMehdi(): String { - return "Mehdi" - } -} \ No newline at end of file diff --git a/src/main/kotlin/io/github/janbarari/gradle/ExcludeJacocoGenerated.kt b/src/main/kotlin/io/github/janbarari/gradle/ExcludeJacocoGenerated.kt new file mode 100644 index 00000000..1e537ec9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/ExcludeJacocoGenerated.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle + +/** + * In order to have reliable code coverage sometimes it's needed to exclude some + * functions or classes that their lifecycle is based on the framework and not + * in developer hand. + * + * Since Jacoco 0.8.2, developers can exclude classes and methods by annotating + * them with a custom annotation with the following properties: + * + * 1- The name of the annotation should include the 'Generated' keyword. + * 2- The retention policy of annotation should be runtime or class. + */ +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.TYPE, AnnotationTarget.FUNCTION, + AnnotationTarget.CLASS, AnnotationTarget.FIELD) +annotation class ExcludeJacocoGenerated diff --git a/src/main/kotlin/io/github/janbarari/gradle/IncompatibleVersionException.kt b/src/main/kotlin/io/github/janbarari/gradle/IncompatibleVersionException.kt new file mode 100644 index 00000000..4212cc51 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/IncompatibleVersionException.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle + +@ExcludeJacocoGenerated +class IncompatibleVersionException( + private val title: String, + private val minimumRequiredVersion: String +) : Throwable() { + + override val message: String + get() = "$title is compatible with Gradle version $minimumRequiredVersion and above." + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/NotAccessibleGitTerminalException.kt b/src/main/kotlin/io/github/janbarari/gradle/NotAccessibleGitTerminalException.kt new file mode 100644 index 00000000..ce6f9211 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/NotAccessibleGitTerminalException.kt @@ -0,0 +1,28 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle + +@ExcludeJacocoGenerated +class NotAccessibleGitTerminalException(title: String): Throwable( + message = "$title works only on projects which use Git." +) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/DatabaseConfig.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/DatabaseConfig.kt new file mode 100644 index 00000000..c33d301d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/DatabaseConfig.kt @@ -0,0 +1,93 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics + +import groovy.lang.Closure +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.database.DatabaseConnection +import io.github.janbarari.gradle.analytics.database.MySqlDatabaseConnection +import io.github.janbarari.gradle.analytics.database.SqliteDatabaseConnection + +@ExcludeJacocoGenerated +class DatabaseConfig @JvmOverloads constructor() : java.io.Serializable { + + /** + * It is the database config of user local machine, this variable should be initialized + * with one of the database configs that the plugin supports. + */ + var local: DatabaseConnection? = null + + /** + * It is the database config of CI. Should be initialized + * with one of the database configs that the plugin supports. Keep in mind that + * if this variable is initialized, then the plugin only uses this database + * config on CI. + * + * Note: please make sure the CI has an environment variable named `CI`. + */ + var ci: DatabaseConnection? = null + + /** + * Factory method for create a new instance + * of [io.github.janbarari.gradle.analytics.data.database.config.MySqlDatabaseConfig]. + */ + fun mysql(block: MySqlDatabaseConnection.() -> Unit): MySqlDatabaseConnection { + return MySqlDatabaseConnection { + also(block) + } + } + + /** + * Factory method for create a new instance + * of [io.github.janbarari.gradle.analytics.data.database.config.MySqlDatabaseConfig]. + */ + fun mysql(closure: Closure<*>): MySqlDatabaseConnection { + val temp = MySqlDatabaseConnection { } + closure.delegate = temp + closure.call() + return temp + } + + /** + * Factory method for create a new instance + * of [io.github.janbarari.gradle.analytics.data.database.config.SqliteDatabaseConfig]. + */ + fun sqlite(block: SqliteDatabaseConnection.() -> Unit): SqliteDatabaseConnection { + return SqliteDatabaseConnection { + also(block) + } + } + + /** + * Factory method for create a new instance + * of [io.github.janbarari.gradle.analytics.data.database.config.SqliteDatabaseConfig]. + */ + fun sqlite(closure: Closure<*>): SqliteDatabaseConnection { + val temp = SqliteDatabaseConnection { } + closure.delegate = temp + closure.call() + return temp + } + + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPlugin.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPlugin.kt new file mode 100644 index 00000000..4baa5551 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPlugin.kt @@ -0,0 +1,108 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.IncompatibleVersionException +import io.github.janbarari.gradle.NotAccessibleGitTerminalException +import io.github.janbarari.gradle.analytics.reporttask.ReportAnalyticsTask +import io.github.janbarari.gradle.analytics.scanner.ScannerUtils +import io.github.janbarari.gradle.utils.GitUtils +import io.github.janbarari.gradle.utils.ProjectUtils +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.build.event.BuildEventsListenerRegistry +import javax.inject.Inject + +/** + * A free Gradle plugin for analytics of your projects. Provides unique visual and + * text metrics in HTML format. + */ +@ExcludeJacocoGenerated +class GradleAnalyticsPlugin @Inject constructor( + private val registry: BuildEventsListenerRegistry +) : Plugin { + + companion object { + const val PLUGIN_NAME = "gradleAnalyticsPlugin" + const val PLUGIN_VERSION = "1.0.0-beta1" + } + + /** + * Gradle will invoke this function once the plugin is added into the project build script. + */ + override fun apply(project: Project) { + ensureProjectGradleCompatible() + ensureGitTerminalAccessible() + val config = setupPluginConfig(project) + registerTasks(config) + ScannerUtils.setupScannerServices(config, registry) + } + + /** + * The plugin is compatible with Gradle version 6.1 and above, This function ensures + * the plugin Gradle version is compatible with the user project version. + * + * @throws io.github.janbarari.gradle.IncompatibleVersionException when the Gradle version is not compatible. + */ + @kotlin.jvm.Throws(IncompatibleVersionException::class) + private fun ensureProjectGradleCompatible() { + val requiredGradleVersion = ProjectUtils.GradleVersions.V6_1 + if (!ProjectUtils.isCompatibleWith(requiredGradleVersion)) { + throw IncompatibleVersionException(PLUGIN_NAME, requiredGradleVersion.versionNumber) + } + } + + /** + * The plugin only works on projects which use Git. This function ensures the Git terminal accessible in project directory. + */ + @kotlin.jvm.Throws(NotAccessibleGitTerminalException::class) + private fun ensureGitTerminalAccessible() { + try { + GitUtils.currentBranch() + } catch (e: Throwable) { + throw NotAccessibleGitTerminalException(PLUGIN_NAME) + } + } + + /** + * Setups plugin config. + * + * Note: extension will be initialized after projectsEvaluated(configuration process). + */ + private fun setupPluginConfig(project: Project): GradleAnalyticsPluginConfig { + return project.extensions.create( + PLUGIN_NAME, + GradleAnalyticsPluginConfig::class.java, + project + ) + } + + /** + * Registers the plugin custom tasks. + */ + private fun registerTasks(config: GradleAnalyticsPluginConfig) { + ReportAnalyticsTask.register(config) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPluginConfig.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPluginConfig.kt new file mode 100644 index 00000000..b31878ee --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/GradleAnalyticsPluginConfig.kt @@ -0,0 +1,56 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics + +import groovy.lang.Closure +import io.github.janbarari.gradle.analytics.database.DatabaseConnection +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.Project + +/** + * Configuration options for the [io.github.janbarari.gradle.analytics.GradleAnalyticsPlugin]. + */ +@ExcludeJacocoGenerated +open class GradleAnalyticsPluginConfig(val project: Project) { + + private var databaseConfig: DatabaseConfig = DatabaseConfig() + + var trackingTasks: List = listOf() + + var trackingBranches: List = listOf() + + var outputPath: String = project.rootProject.buildDir.absolutePath + + fun database(closure: Closure<*>) { + closure.delegate = databaseConfig + closure.call() + } + + fun database(block: DatabaseConfig.() -> Unit) { + databaseConfig = DatabaseConfig().also(block) + } + + fun getDatabaseConfig(): DatabaseConfig = databaseConfig + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/data/DatabaseRepositoryImp.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/data/DatabaseRepositoryImp.kt new file mode 100644 index 00000000..4bcdb2ce --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/data/DatabaseRepositoryImp.kt @@ -0,0 +1,254 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.data + +import com.squareup.moshi.Moshi +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.database.ResetAutoIncremental +import io.github.janbarari.gradle.analytics.database.table.MetricTable +import io.github.janbarari.gradle.analytics.database.table.SingleMetricTable +import io.github.janbarari.gradle.analytics.database.table.TemporaryMetricTable +import io.github.janbarari.gradle.analytics.database.table.TemporaryMetricTable.value +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetricJsonAdapter +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.extension.separateElementsWithSpace +import io.github.janbarari.gradle.utils.DateTimeUtils +import org.jetbrains.exposed.sql.ResultRow +import org.jetbrains.exposed.sql.SortOrder +import org.jetbrains.exposed.sql.and +import org.jetbrains.exposed.sql.deleteAll +import org.jetbrains.exposed.sql.deleteWhere +import org.jetbrains.exposed.sql.insert +import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.update + +class DatabaseRepositoryImp( + private val db: Database, + private val branch: String, + private val requestedTasks: String, + private val moshi: Moshi +) : DatabaseRepository { + + private var jsonAdapter: BuildMetricJsonAdapter = BuildMetricJsonAdapter(moshi) + + override fun saveNewMetric(metric: BuildMetric): Long { + return db.transaction { + val queryResult = MetricTable.insert { + it[createdAt] = metric.createdAt + it[value] = jsonAdapter.toJson(metric) + it[branch] = metric.branch + it[requestedTasks] = metric.requestedTasks.separateElementsWithSpace() + } + dropOutdatedMetrics() + return@transaction queryResult[MetricTable.number] + } + } + + override fun saveTemporaryMetric(metric: BuildMetric): Long { + return db.transaction { + val queryResult = TemporaryMetricTable.insert { + it[createdAt] = metric.createdAt + it[value] = jsonAdapter.toJson(metric) + it[branch] = metric.branch + it[requestedTasks] = metric.requestedTasks.separateElementsWithSpace() + } + return@transaction queryResult[TemporaryMetricTable.number] + } + } + + override fun getDayMetric(): Pair { + return db.transaction { + val queryResult = MetricTable.select { + (MetricTable.createdAt greaterEq DateTimeUtils.getDayStartMs()) and + (MetricTable.createdAt less DateTimeUtils.getDayEndMs()) and + (MetricTable.branch eq branch) and + (MetricTable.requestedTasks eq requestedTasks) + }.single() + return@transaction Pair( + jsonAdapter.fromJson(queryResult[MetricTable.value])!!, queryResult[MetricTable.number] + ) + } + } + + override fun isDayMetricExists(): Boolean { + return db.transaction { + val queryResult = MetricTable.select { + (MetricTable.createdAt greaterEq DateTimeUtils.getDayStartMs()) and + (MetricTable.createdAt less DateTimeUtils.getDayEndMs()) and + (MetricTable.branch eq branch) and + (MetricTable.requestedTasks eq requestedTasks) + } + return@transaction queryResult.count() > 0 + } + } + + override fun getMetrics(period: Pair): List { + return db.transaction { + val result = arrayListOf() + MetricTable.select { + (MetricTable.createdAt greaterEq period.first) and + (MetricTable.createdAt lessEq period.second) and + (MetricTable.branch eq branch) and + (MetricTable.requestedTasks eq requestedTasks) + }.orderBy(MetricTable.number, SortOrder.ASC).forEach { + result.add( + jsonAdapter.fromJson(it[MetricTable.value])!! + ) + } + return@transaction result + } + } + + override fun updateDayMetric(number: Long, metric: BuildMetric): Boolean { + return db.transaction { + val queryResult = MetricTable.update({ + MetricTable.number eq number + }) { + it[value] = jsonAdapter.toJson(metric) + it[createdAt] = System.currentTimeMillis() + } + return@transaction queryResult == 1 + } + } + + override fun dropOutdatedTemporaryMetrics(): Boolean { + return db.transaction { + val dayMetrics = mutableListOf() + TemporaryMetricTable.select { + TemporaryMetricTable.createdAt greaterEq DateTimeUtils.getDayStartMs() + }.forEach { + dayMetrics.add(it) + } + TemporaryMetricTable.deleteAll() + ResetAutoIncremental.getQuery("temporary_metric")?.let { + exec(it) + } + if (dayMetrics.isNotEmpty()) { + dayMetrics.forEach { dayMetric -> + TemporaryMetricTable.insert { + it[createdAt] = dayMetric[createdAt] + it[value] = dayMetric[value] + it[branch] = dayMetric[branch] + it[requestedTasks] = dayMetric[requestedTasks] + } + } + } + return@transaction true + } + } + + override fun dropOutdatedMetrics() { + return db.transaction { + MetricTable.deleteWhere { + // Delete all metrics that are created more than 1 year ago. + MetricTable.createdAt less (System.currentTimeMillis() - 32_140_800_000L) + } + } + } + + override fun dropMetrics(): Boolean { + return db.transaction { + MetricTable.deleteAll() + ResetAutoIncremental.getQuery("metric")?.let { + exec(it) + } + return@transaction true + } + } + + override fun getTemporaryMetrics(): List { + return db.transaction { + if (dropOutdatedTemporaryMetrics()) { + val metrics = arrayListOf() + val queryResult = TemporaryMetricTable.select { + (TemporaryMetricTable.branch eq branch) and + (TemporaryMetricTable.requestedTasks eq requestedTasks) + } + queryResult.toList().forEach { + jsonAdapter.fromJson(it[value])?.let { metric -> + metrics.add(metric) + } + } + return@transaction metrics + } else { + return@transaction emptyList() + } + } + } + + override fun getSingleMetric(key: String, branch: String): String? { + return db.transaction { + val queryResult = SingleMetricTable.select { + (SingleMetricTable.key eq key) and (SingleMetricTable.branch eq branch) + } + if (queryResult.count() > 0) { + return@transaction queryResult.single()[SingleMetricTable.value] + } + return@transaction null + } + } + + override fun updateSingleMetric(key: String, branch: String, value: String): Boolean { + return db.transaction { + val queryResult = SingleMetricTable.update( + { + (SingleMetricTable.key eq key) and (SingleMetricTable.branch eq branch) + } + ) { + it[SingleMetricTable.value] = value + it[createdAt] = System.currentTimeMillis() + } + return@transaction queryResult == 1 + } + } + + override fun saveSingleMetric(key: String, branch: String, value: String): Boolean { + return db.transaction { + SingleMetricTable.insert { + it[SingleMetricTable.key] = key + it[createdAt] = System.currentTimeMillis() + it[SingleMetricTable.value] = value + it[SingleMetricTable.branch] = branch + } + return@transaction true + } + } + + override fun dropSingleMetric(key: String, branch: String): Boolean { + return db.transaction { + SingleMetricTable.deleteWhere { + (SingleMetricTable.key eq key) and (SingleMetricTable.branch eq branch) + } + return@transaction true + } + } + + override fun dropSingleMetrics(): Boolean { + return db.transaction { + SingleMetricTable.deleteAll() + return@transaction true + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/Database.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/Database.kt new file mode 100644 index 00000000..26658386 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/Database.kt @@ -0,0 +1,120 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +import io.github.janbarari.gradle.analytics.database.table.MetricTable +import io.github.janbarari.gradle.analytics.database.table.TemporaryMetricTable +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.database.table.SingleMetricTable +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.toRealPath +import io.github.janbarari.gradle.extension.whenNotNull +import org.jetbrains.exposed.sql.Table +import org.jetbrains.exposed.sql.Transaction +import org.jetbrains.exposed.sql.SchemaUtils +import org.jetbrains.exposed.sql.transactions.transaction +import org.jetbrains.exposed.sql.Database +import org.jetbrains.exposed.sql.transactions.transactionManager + +class Database( + config: DatabaseConfig, + private var isCI: Boolean +) { + + companion object { + const val DEFAULT_VARCHAR_LENGTH = 256 + } + + private lateinit var _database: Database + private var databaseConfig: DatabaseConnection? = null + + init { + connect(config) + } + + private fun connect(config: DatabaseConfig) { + databaseConfig = config.local + + if (isCI && config.ci.isNotNull()) { + databaseConfig = config.ci + } + + databaseConfig.whenNotNull { + + when (databaseConfig) { + is MySqlDatabaseConnection -> { + LongTextColumnType.longTextType = LongTextColumnType.Companion.LongTextType.MEDIUMTEXT + connectToMysqlDatabase(databaseConfig as MySqlDatabaseConnection) + ResetAutoIncremental.dbType = MySqlDatabaseConnection::class.java + } + is SqliteDatabaseConnection -> { + LongTextColumnType.longTextType = LongTextColumnType.Companion.LongTextType.TEXT + connectSqliteDatabase(databaseConfig as SqliteDatabaseConnection) + ResetAutoIncremental.dbType = SqliteDatabaseConnection::class.java + } + } + + createTables(MetricTable, TemporaryMetricTable, SingleMetricTable) + + } + } + + private fun connectToMysqlDatabase(config: MySqlDatabaseConnection) { + _database = Database.connect( + url = "jdbc:mysql://${config.host}:${config.port}/${config.name}", + driver = "com.mysql.cj.jdbc.Driver", + user = config.user, + password = config.password + ) + } + + private fun connectSqliteDatabase(config: SqliteDatabaseConnection) { + _database = Database.connect( + url = "jdbc:sqlite:${config.path!!.toRealPath()}/${config.name}.db", + driver = "org.sqlite.JDBC", + user = config.user, + password = config.password + ) + } + + /** + * Creates the database tables if not exist. + */ + private fun createTables(vararg entities: Table) { + transaction { + SchemaUtils.createMissingTablesAndColumns(*entities, withLogs = false) + } + } + + @ExcludeJacocoGenerated + fun transaction(statement: Transaction.() -> T): T { + return transaction( + _database.transactionManager.defaultIsolationLevel, + _database.transactionManager.defaultRepetitionAttempts, + _database, + statement + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/DatabaseConnection.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/DatabaseConnection.kt new file mode 100644 index 00000000..39078dbe --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/DatabaseConnection.kt @@ -0,0 +1,28 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +open class DatabaseConnection : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/LongTextColumnType.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/LongTextColumnType.kt new file mode 100644 index 00000000..bbfe4645 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/LongTextColumnType.kt @@ -0,0 +1,47 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +import org.jetbrains.exposed.sql.IColumnType +import org.jetbrains.exposed.sql.TextColumnType + +/** + * Since the MySql database `text` column can only save a text with a maximum + * 65kb size. this is an extension structure to hold big text values for it. + */ +class LongTextColumnType : IColumnType by TextColumnType() { + + companion object { + var longTextType: LongTextType = LongTextType.TEXT + + enum class LongTextType(val value: String) { + TEXT("TEXT"), + MEDIUMTEXT("MEDIUMTEXT") + } + } + + override fun sqlType(): String { + return longTextType.value + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/MySqlDatabaseConnection.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/MySqlDatabaseConnection.kt new file mode 100644 index 00000000..8553fe50 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/MySqlDatabaseConnection.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +class MySqlDatabaseConnection(block: MySqlDatabaseConnection.() -> Unit): DatabaseConnection() { + + companion object { + const val DEFAULT_MYSQL_PORT = 3306 + } + + init { + also(block) + } + + lateinit var host: String + + lateinit var name: String + + var port: Int = DEFAULT_MYSQL_PORT + + var user: String = "root" + + var password: String = "" + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/ResetAutoIncremental.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/ResetAutoIncremental.kt new file mode 100644 index 00000000..2aada625 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/ResetAutoIncremental.kt @@ -0,0 +1,44 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +/** + * Since tables uses auto incremental number to generate unique id, the auto-incremental + * won't reset after table cleared, This class helps to reset auto-incremental numbers + * of a table. also it will do it for both MySql and Sqlite database. + */ +object ResetAutoIncremental { + lateinit var dbType: Class + + fun getQuery(tableName: String): String? { + if (this::dbType.isInitialized) { + if (dbType == MySqlDatabaseConnection::class.java) { + return "ALTER TABLE $tableName AUTO_INCREMENT = 0;" + } + if (dbType == SqliteDatabaseConnection::class.java) { + return "UPDATE SQLITE_SEQUENCE SET SEQ=0 WHERE NAME='$tableName';" + } + } + return null + } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/SqliteDatabaseConnection.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/SqliteDatabaseConnection.kt new file mode 100644 index 00000000..51b280c5 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/SqliteDatabaseConnection.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +class SqliteDatabaseConnection(block: SqliteDatabaseConnection.() -> Unit): DatabaseConnection() { + + init { + also(block) + } + + var path: String? = null + + var name: String? = null + + var user: String = "root" + + var password: String = "" + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/MetricTable.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/MetricTable.kt new file mode 100644 index 00000000..2523b634 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/MetricTable.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database.table + +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.database.LongTextColumnType +import org.jetbrains.exposed.sql.Table + +object MetricTable : Table("metric") { + + /** + * The unique auto-generated number which represents the build-number. + * + * It also is the primary-key of the table. + */ + val number = long("number").autoIncrement().uniqueIndex() + + val createdAt = long("created_at") + + val branch = varchar("branch", Database.DEFAULT_VARCHAR_LENGTH) + + val requestedTasks = varchar("requested_tasks", Database.DEFAULT_VARCHAR_LENGTH) + + val value = registerColumn("value", LongTextColumnType()) + + override val primaryKey = PrimaryKey(number) + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/SingleMetricTable.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/SingleMetricTable.kt new file mode 100644 index 00000000..8279d073 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/SingleMetricTable.kt @@ -0,0 +1,50 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database.table + +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.database.LongTextColumnType +import io.github.janbarari.gradle.analytics.database.table.TemporaryMetricTable.autoIncrement +import io.github.janbarari.gradle.analytics.database.table.TemporaryMetricTable.uniqueIndex +import org.jetbrains.exposed.sql.Table + +object SingleMetricTable : Table("single_metric") { + + /** + * The unique auto-generated id. + * + * It also is the primary-key of the table. + */ + val id = long("id").autoIncrement().uniqueIndex() + + val key = varchar("key", Database.DEFAULT_VARCHAR_LENGTH) + + val createdAt = long("created_at") + + val branch = varchar("branch", Database.DEFAULT_VARCHAR_LENGTH) + + val value = registerColumn("value", LongTextColumnType()) + + override val primaryKey = PrimaryKey(id) + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/TemporaryMetricTable.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/TemporaryMetricTable.kt new file mode 100644 index 00000000..377d6946 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/database/table/TemporaryMetricTable.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.database.table + +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.database.LongTextColumnType +import org.jetbrains.exposed.sql.Table + +object TemporaryMetricTable : Table("temporary_metric") { + + /** + * The unique auto-generated number which represents the build-number. + * + * It also is the primary-key of the table. + */ + val number = long("number").autoIncrement().uniqueIndex() + + val createdAt = long("created_at") + + val branch = varchar("branch", Database.DEFAULT_VARCHAR_LENGTH) + + val requestedTasks = varchar("requested_tasks", Database.DEFAULT_VARCHAR_LENGTH) + + val value = registerColumn("value", LongTextColumnType()) + + override val primaryKey = PrimaryKey(number) + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/BuildInfo.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/BuildInfo.kt new file mode 100644 index 00000000..589eab91 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/BuildInfo.kt @@ -0,0 +1,184 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import io.github.janbarari.gradle.extension.whenNotNull +import org.gradle.tooling.Failure +import java.time.Duration + +data class BuildInfo( + val createdAt: Long, + val startedAt: Long, + val initializedAt: Long, + val configuredAt: Long, + var dependenciesResolveInfo: Collection, + val executedTasks: List, + val finishedAt: Long, + val branch: String, + val gitHeadCommitHash: String, + val requestedTasks: List, + val isSuccessful: Boolean, + val failure: List? = null +) : java.io.Serializable { + + init { + // Replace pass-by-reference to pass-by-value, cause the collection will be reset after creation of BuildInfo. + dependenciesResolveInfo = dependenciesResolveInfo.toList() + } + + /** + * Returns the total build duration. + */ + fun getTotalDuration(): Duration { + if (finishedAt < startedAt) return Duration.ofMillis(0) + return Duration.ofMillis(finishedAt - startedAt) + } + + /** + * Returns the build initialization process duration. + */ + fun getInitializationDuration(): Duration { + if (initializedAt < startedAt) return Duration.ofMillis(0) + return Duration.ofMillis(initializedAt - startedAt) + } + + /** + * Returns the build configuration process duration. + */ + fun getConfigurationDuration(): Duration { + if (configuredAt < initializedAt) return Duration.ofMillis(0) + return Duration.ofMillis(configuredAt - initializedAt) + } + + /** + * Returns the build execution process duration. + */ + fun getExecutionDuration(): Duration { + if (finishedAt < configuredAt) return Duration.ofMillis(0) + return Duration.ofMillis(finishedAt - configuredAt) + } + + /** + * Returns the total dependencies resolve duration. + */ + fun getTotalDependenciesResolveDuration(): Duration { + var result = 0L + val iterator = dependenciesResolveInfo.iterator() + while (iterator.hasNext()) { + val info = iterator.next() + result += info.getDuration() + } + return Duration.ofMillis(result) + } + + /** + * Calculates the cumulative parallel execution duration in milliseconds. + */ + fun calculateParallelExecutionByMillis(): Long { + return executedTasks.sumOf { it.getDurationInMillis() } + } + + /** + * Gradle executes the project tasks in parallel to use maximum performance of + * the system resources, Which means by adding the task's duration together, + * We calculated the serial duration. to calculate the non-parallel + * duration(real-life duration) we need to ignore those tasks that are executed at + * the same time or covered times by another task. + */ + fun calculateNonParallelExecutionInMillis(executedTasks: List = this.executedTasks): Long { + fun checkIfCanMerge( + parallelTask: TaskInfo, + nonParallelTask: Map.Entry>, + nonParallelTasks: HashMap> + ) { + if (parallelTask.startedAt <= nonParallelTask.value.second && + parallelTask.finishedAt >= nonParallelTask.value.second) { + + var start = nonParallelTask.value.first + var end = nonParallelTask.value.second + + if (parallelTask.startedAt < nonParallelTask.value.first) + start = parallelTask.startedAt + + if (parallelTask.finishedAt > nonParallelTask.value.second) + end = parallelTask.finishedAt + nonParallelTasks[nonParallelTask.key] = Pair(start, end) + } + } + + val nonParallelDurations = hashMapOf>() + + val executedTaskIterator = executedTasks + .sortedBy { task -> task.startedAt } + .iterator() + + while (executedTaskIterator.hasNext()) { + val executedTask = executedTaskIterator.next() + if (nonParallelDurations.isEmpty()) { + nonParallelDurations[nonParallelDurations.size] = Pair(executedTask.startedAt, executedTask.finishedAt) + continue + } + + var tempTask: Pair? = null + val nonParallelTasksIterator = nonParallelDurations.iterator() + while (nonParallelTasksIterator.hasNext()) { + val nonParallelTask = nonParallelTasksIterator.next() + + checkIfCanMerge(executedTask, nonParallelTask, nonParallelDurations) + + if (executedTask.startedAt > nonParallelTask.value.first && + executedTask.finishedAt > nonParallelTask.value.second && + executedTask.finishedAt > executedTask.startedAt + ) { + tempTask = Pair(executedTask.startedAt, executedTask.finishedAt) + } + } + + tempTask.whenNotNull { + val iterator = nonParallelDurations.iterator() + while (iterator.hasNext()) { + val nonParallelTask = iterator.next() + if (nonParallelTask.value.second in first..second) { + var start = nonParallelTask.value.first + var end = nonParallelTask.value.second + if (first < nonParallelTask.value.first) { + start = first + } + if (second > nonParallelTask.value.second) { + end = second + } + nonParallelDurations[nonParallelTask.key] = Pair(start, end) + } + } + + val biggestNonParallelTaskEnd = nonParallelDurations.toList().maxByOrNull { it.second.second }!!.second.second + if (first > biggestNonParallelTaskEnd) { + nonParallelDurations[nonParallelDurations.size] = this + } + } + } + + return nonParallelDurations.toList().sumOf { (it.second.second - it.second.first) } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ChartPoint.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ChartPoint.kt new file mode 100644 index 00000000..c4de603a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ChartPoint.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ChartPoint( + @Json(name = "value") + val value: Long, + @Json(name = "description") + val description: String +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Dependency.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Dependency.kt new file mode 100644 index 00000000..e9d44912 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Dependency.kt @@ -0,0 +1,70 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.api.Project + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class Dependency( + @Json(name = "name") + val name: String, + @Json(name = "module_name") + val moduleName: String, + @Json(name = "module_group") + val moduleGroup: String, + @Json(name = "module_version") + val moduleVersion: String, + @Json(name = "size_by_kb") + val sizeByKb: Long +): java.io.Serializable { + + companion object { + + fun Project.getThirdPartyDependencies(): List { + return subprojects.flatMap { project -> + project.configurations.filter { + it.isCanBeResolved && it.name.contains("compileClassPath", ignoreCase = true) + }.flatMap { configuration -> + configuration.resolvedConfiguration.firstLevelModuleDependencies.filter { resolvedDependency -> + !resolvedDependency.moduleVersion.equals("unspecified", true) + }.map { it } + } + }.toSet() + .map { + Dependency( + name = it.name, + moduleName = it.moduleName, + moduleGroup = it.moduleGroup, + moduleVersion = it.moduleVersion, + sizeByKb = it.moduleArtifacts.sumOf { artifact -> artifact.file.length() / 1024L } + ) + } + } + + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/DependencyResolveInfo.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/DependencyResolveInfo.kt new file mode 100644 index 00000000..e0c2ca9a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/DependencyResolveInfo.kt @@ -0,0 +1,46 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) +data class DependencyResolveInfo( + @Json(name = "path") + val path: String, + @Json(name = "started_at") + val startedAt: Long, + @Json(name = "finished_at") + var finishedAt: Long = 0L +) : java.io.Serializable { + + /** + * Returns the resolve duration in milliseconds. + */ + fun getDuration(): Long { + if (finishedAt < startedAt) return 0L + return finishedAt - startedAt + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Module.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Module.kt new file mode 100644 index 00000000..4d7422c1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/Module.kt @@ -0,0 +1,46 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import org.gradle.api.Project + +@JsonClass(generateAdapter = true) +data class Module( + @Json(name = "path") + val path: String, + @Json(name = "absoluteDir") + val absoluteDir: String +): java.io.Serializable { + + companion object { + fun Project.toModule(): Module { + return Module( + path = path, + absoluteDir = projectDir.absolutePath + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModuleDependency.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModuleDependency.kt new file mode 100644 index 00000000..37d8dcf8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModuleDependency.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleDependency( + @Json(name = "path") + val path: String, + @Json(name = "configuration") + val configuration: String, + @Json(name = "dependency") + val dependency: String +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModulesDependencyGraph.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModulesDependencyGraph.kt new file mode 100644 index 00000000..43b61924 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/ModulesDependencyGraph.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesDependencyGraph( + @Json(name = "dependencies") + val dependencies: List +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TaskInfo.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TaskInfo.kt new file mode 100644 index 00000000..55641d99 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TaskInfo.kt @@ -0,0 +1,79 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import org.gradle.tooling.Failure +import org.gradle.tooling.events.OperationDescriptor + +@JsonClass(generateAdapter = true) +data class TaskInfo( + @Json(name = "started_at") + val startedAt: Long, + @Json(name = "finished_at") + val finishedAt: Long, + @Json(name = "path") + val path: String, + @Json(name = "display_name") + val displayName: String, + @Json(name = "name") + val name: String, + @Json(name = "is_successful") + val isSuccessful: Boolean, + @Json(name = "failures") + val failures: List?, + @Json(name = "dependencies") + val dependencies: List?, + @Json(name = "is_incremental") + val isIncremental: Boolean, + @Json(name = "is_from_cache") + val isFromCache: Boolean, + @Json(name = "is_up_to_date") + val isUpToDate: Boolean, + @Json(name = "is_skipped") + val isSkipped: Boolean, + @Json(name = "execution_reasons") + val executionReasons: List? +) : java.io.Serializable { + + /** + * Returns the task execution duration in milliseconds. + */ + fun getDurationInMillis(): Long { + if (finishedAt < startedAt) return 0L + return finishedAt - startedAt + } + + /** + * Returns the task module name. + */ + fun getModule(): String { + val module = path.split(":") + return if (module.size > 2) module.toList() + .dropLast(1) + .joinToString(separator = ":") + else "no_module" + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TimespanPoint.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TimespanPoint.kt new file mode 100644 index 00000000..ecc0aae2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/TimespanPoint.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.utils.DateTimeUtils + +@JsonClass(generateAdapter = true) +data class TimespanPoint( + @Json(name = "value") + val value: Long, + @Json(name = "from") + val from: Long, + @Json(name = "to") + val to: Long? = null +): io.github.janbarari.gradle.core.Triple(value, from, to) { + + fun getTimespanString(): String { + return if (to.isNull()) { + DateTimeUtils.format(from, "dd/MM") + } else { + DateTimeUtils.format(from, "dd/MM") + "-" + DateTimeUtils.format(to!!, "dd/MM") + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/BuildMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/BuildMetric.kt new file mode 100644 index 00000000..d8def289 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/BuildMetric.kt @@ -0,0 +1,103 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class BuildMetric( + + @Json(name = "branch") + var branch: String, + + @Json(name = "requested_tasks") + var requestedTasks: List, + + @Json(name = "created_at") + var createdAt: Long, + + @Json(name = "git_head_commit_hash") + var gitHeadCommitHash: String, + + @Json(name = "initialization_process_metric") + var initializationProcessMetric: InitializationProcessMetric? = null, + + @Json(name = "configuration_process_metric") + var configurationProcessMetric: ConfigurationProcessMetric? = null, + + @Json(name = "execution_process_metric") + var executionProcessMetric: ExecutionProcessMetric? = null, + + @Json(name = "overall_build_process_metric") + var overallBuildProcessMetric: OverallBuildProcessMetric? = null, + + @Json(name = "modules_source_count_metric") + var modulesSourceCountMetric: ModulesSourceCountMetric? = null, + + @Json(name = "modules_method_count_metric") + var modulesMethodCountMetric: ModulesMethodCountMetric? = null, + + @Json(name = "cache_hit_metric") + var cacheHitMetric: CacheHitMetric? = null, + + @Json(name = "success_build_rate_metric") + var successBuildRateMetric: SuccessBuildRateMetric? = null, + + @Json(name = "dependency_resolve_process_metric") + var dependencyResolveProcessMetric: DependencyResolveProcessMetric? = null, + + @Json(name = "parallel_execution_rate_metric") + var parallelExecutionRateMetric: ParallelExecutionRateMetric? = null, + + @Json(name = "modules_execution_process_metric") + var modulesExecutionProcessMetric: ModulesExecutionProcessMetric? = null, + + @Json(name = "modules_dependency_graph_metric") + var modulesDependencyGraphMetric: ModulesDependencyGraphMetric? = null, + + @Json(name = "modules_build_heatmap_metric") + var modulesBuildHeatmap: ModulesBuildHeatmapMetric? = null, + + @Json(name = "dependency_details_metric") + var dependencyDetailsMetric: DependencyDetailsMetric? = null, + + @Json(name = "non_cacheable_tasks_metric") + var nonCacheableTasksMetric: NonCacheableTasksMetric? = null, + + @Json(name = "modules_source_size_metric") + var modulesSourceSizeMetric: ModulesSourceSizeMetric? = null, + + @Json(name = "modules_crash_count_metric") + var modulesCrashCountMetric: ModulesCrashCountMetric? = null, + +): java.io.Serializable { + + // Exclude from build metric json to avoid save in metric table. Regarding the metric + // size and usability, this metric should be saved in `single_metric` table. + @Transient + var modulesTimelineMetric: ModulesTimelineMetric? = null + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/CacheHitMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/CacheHitMetric.kt new file mode 100644 index 00000000..8e840520 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/CacheHitMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class CacheHitMetric( + @Json(name = "rate") + val rate: Long, + @Json(name = "modules") + val modules: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ConfigurationProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ConfigurationProcessMetric.kt new file mode 100644 index 00000000..27d6df13 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ConfigurationProcessMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ConfigurationProcessMetric( + @Json(name = "median") + var median: Long = 0L, + @Json(name = "mean") + var mean: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyDetailsMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyDetailsMetric.kt new file mode 100644 index 00000000..06f287f8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyDetailsMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.Dependency + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class DependencyDetailsMetric( + @Json(name = "dependencies") + val dependencies: List +): java.io.Serializable + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyResolveProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyResolveProcessMetric.kt new file mode 100644 index 00000000..15325400 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/DependencyResolveProcessMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class DependencyResolveProcessMetric( + @Json(name = "median") + var median: Long = 0L, + @Json(name = "mean") + var mean: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ExecutionProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ExecutionProcessMetric.kt new file mode 100644 index 00000000..14e4b555 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ExecutionProcessMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ExecutionProcessMetric( + @Json(name = "median") + var median: Long = 0L, + @Json(name = "mean") + var mean: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/InitializationProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/InitializationProcessMetric.kt new file mode 100644 index 00000000..07ca8830 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/InitializationProcessMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class InitializationProcessMetric( + @Json(name = "median") + var median: Long = 0L, + @Json(name = "mean") + var mean: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleBuildHeatmap.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleBuildHeatmap.kt new file mode 100644 index 00000000..43693df8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleBuildHeatmap.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleBuildHeatmap( + @Json(name = "path") + val path: String, + @Json(name = "dependant_modules_count") + val dependantModulesCount: Int +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleCacheHit.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleCacheHit.kt new file mode 100644 index 00000000..d8cceb80 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleCacheHit.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleCacheHit( + @Json(name = "path") + val path: String, + @Json(name = "rate") + var rate: Long +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleExecutionProcess.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleExecutionProcess.kt new file mode 100644 index 00000000..556318bb --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleExecutionProcess.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleExecutionProcess( + @Json(name = "path") + val path: String, + @Json(name = "median") + val medianExecInMillis: Long, + @Json(name = "median_parallel") + val medianParallelExecInMillis: Long, + @Json(name = "parallel_rate") + val parallelRate: Float, + @Json(name = "coverage") + val coverageRate: Float +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleMethodCount.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleMethodCount.kt new file mode 100644 index 00000000..e918ebd5 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleMethodCount.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleMethodCount( + @Json(name = "path") + val path: String, + @Json(name = "value") + val value: Int +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleSourceCount.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleSourceCount.kt new file mode 100644 index 00000000..3bb6d281 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleSourceCount.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleSourceCount( + @Json(name = "path") + val path: String, + @Json(name = "value") + val value: Int +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleTimeline.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleTimeline.kt new file mode 100644 index 00000000..50e1e246 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModuleTimeline.kt @@ -0,0 +1,52 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleTimeline( + @Json(name = "path") + val path: String, + @Json(name = "timelines") + val timelines: List +) { + + @ExcludeJacocoGenerated + @JsonClass(generateAdapter = true) + data class Timeline( + @Json(name = "path") + val path: String, + @Json(name = "start") + val start: Long, + @Json(name = "end") + val end: Long, + @Json(name = "is_cached") + val isCached: Boolean + ) + +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesBuildHeatmapMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesBuildHeatmapMetric.kt new file mode 100644 index 00000000..fee73086 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesBuildHeatmapMetric.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesBuildHeatmapMetric( + @Json(name = "modules") + val modules: List +): java.io.Serializable + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesCrashCountMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesCrashCountMetric.kt new file mode 100644 index 00000000..95cf2565 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesCrashCountMetric.kt @@ -0,0 +1,45 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesCrashCountMetric( + @Json(name = "modules") + val modules: List +): java.io.Serializable { + + @ExcludeJacocoGenerated + @JsonClass(generateAdapter = true) + data class ModuleCrash( + @Json(name = "path") + val path: String, + @Json(name = "crash_count") + val totalCrashes: Long, + ): java.io.Serializable + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesDependencyGraphMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesDependencyGraphMetric.kt new file mode 100644 index 00000000..453442f9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesDependencyGraphMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ModuleDependency +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesDependencyGraphMetric( + @Json(name = "dependencies") + var dependencies: List +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesExecutionProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesExecutionProcessMetric.kt new file mode 100644 index 00000000..1a7e87c1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesExecutionProcessMetric.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesExecutionProcessMetric( + @Json(name = "modules") + var modules: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesMethodCountMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesMethodCountMetric.kt new file mode 100644 index 00000000..a464674c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesMethodCountMetric.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesMethodCountMetric( + @Json(name = "modules") + val modules: List +): java.io.Serializable + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceCountMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceCountMetric.kt new file mode 100644 index 00000000..cbb9b913 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceCountMetric.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesSourceCountMetric( + @Json(name = "modules") + val modules: List +): java.io.Serializable + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceSizeMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceSizeMetric.kt new file mode 100644 index 00000000..51351c5c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesSourceSizeMetric.kt @@ -0,0 +1,46 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesSourceSizeMetric( + @Json(name = "modules") + val modules: List +): java.io.Serializable { + + @ExcludeJacocoGenerated + @JsonClass(generateAdapter = true) + data class ModuleSourceSize( + @Json(name = "path") + val path: String, + @Json(name = "size_by_kb") + val sizeInKb: Long + ): java.io.Serializable + +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesTimelineMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesTimelineMetric.kt new file mode 100644 index 00000000..505b1aaa --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ModulesTimelineMetric.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesTimelineMetric( + @Json(name = "start") + val start: Long, + @Json(name = "end") + val end: Long, + @Json(name = "modules") + val modules: List, + @Json(name = "created_at") + val createdAt: Long, +) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/NonCacheableTasksMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/NonCacheableTasksMetric.kt new file mode 100644 index 00000000..abe1063e --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/NonCacheableTasksMetric.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class NonCacheableTasksMetric( + val tasks: List +): Serializable { + + @ExcludeJacocoGenerated + @JsonClass(generateAdapter = true) + data class NonCacheableTask( + val path: String, + var avgExecutionDurationInMillis: Long + ): Serializable + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/OverallBuildProcessMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/OverallBuildProcessMetric.kt new file mode 100644 index 00000000..fdc26d4d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/OverallBuildProcessMetric.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class OverallBuildProcessMetric( + @Json(name = "median") + var median: Long = 0L, + @Json(name = "mean") + var mean: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ParallelExecutionRateMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ParallelExecutionRateMetric.kt new file mode 100644 index 00000000..130c6295 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/ParallelExecutionRateMetric.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ParallelExecutionRateMetric( + @Json(name = "median_rate") + var medianRate: Long = 0L +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/SuccessBuildRateMetric.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/SuccessBuildRateMetric.kt new file mode 100644 index 00000000..73da372c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/metric/SuccessBuildRateMetric.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.metric + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class SuccessBuildRateMetric( + @Json(name = "median_rate") + var medianRate: Float = 0f, + @Json(name = "mean_rate") + var meanRate: Float = 0f, + @Json(name = "successes") + var successes: Int = 0, + @Json(name = "fails") + var fails: Int = 0 +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/HardwareInfo.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/HardwareInfo.kt new file mode 100644 index 00000000..98319192 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/HardwareInfo.kt @@ -0,0 +1,31 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.os + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +data class HardwareInfo( + val availableMemory: Long, + val maximumMemoryCapacity: Long +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/OsInfo.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/OsInfo.kt new file mode 100644 index 00000000..14d87385 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/os/OsInfo.kt @@ -0,0 +1,30 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.os + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +data class OsInfo( + val name: String +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/BuildStatusReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/BuildStatusReport.kt new file mode 100644 index 00000000..7fea9261 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/BuildStatusReport.kt @@ -0,0 +1,59 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class BuildStatusReport( + @Json(name = "cumulative_overall_build_process_by_seconds") + val cumulativeOverallBuildProcessBySeconds: Long, + @Json(name = "avg_overall_build_process_by_seconds") + val avgOverallBuildProcessBySeconds: Long, + @Json(name = "total_build_process_count") + val totalBuildProcessCount: Int, + @Json(name = "total_project_modules_count") + val totalProjectModulesCount: Int, + @Json(name = "cumulative_parallel_execution_by_seconds") + val cumulativeParallelExecutionBySeconds: Long, + @Json(name = "avg_parallel_execution_rate") + val avgParallelExecutionRate: Float, + @Json(name = "total_succeed_build_count") + val totalSucceedBuildCount: Int, + @Json(name = "total_failed_build_count") + val totalFailedBuildCount: Int, + @Json(name = "avg_cache_hit_rate") + val avgCacheHitRate: Float, + @Json(name = "cumulative_dependency_resolve_by_seconds") + val cumulativeDependencyResolveBySeconds: Long, + @Json(name = "avg_initialization_process_by_millis") + val avgInitializationProcessByMillis: Long, + @Json(name = "avg_configuration_process_by_millis") + val avgConfigurationProcessByMillis: Long, + @Json(name = "avg_execution_process_by_seconds") + val avgExecutionProcessBySeconds: Long +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/CacheHitReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/CacheHitReport.kt new file mode 100644 index 00000000..18e2fa80 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/CacheHitReport.kt @@ -0,0 +1,43 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class CacheHitReport( + @Json(name = "modules") + val modules: List, + @Json(name = "overall_mean_values") + val overallMeanValues: List, + @Json(name = "overall_rate") + val overallRate: Long, + @Json(name = "overall_diff_rate") + val overallDiffRate: Float? = null +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ConfigurationProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ConfigurationProcessReport.kt new file mode 100644 index 00000000..f4ca4ec0 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ConfigurationProcessReport.kt @@ -0,0 +1,37 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ConfigurationProcessReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List, +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyDetailsReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyDetailsReport.kt new file mode 100644 index 00000000..dd522e14 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyDetailsReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.Dependency +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class DependencyDetailsReport( + @Json(name = "dependencies") + val dependencies: List, + @Json(name = "cumulative_dependencies_size_by_kb") + val cumulativeDependenciesSizeByKb: Long +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyResolveProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyResolveProcessReport.kt new file mode 100644 index 00000000..bdeccebf --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/DependencyResolveProcessReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class DependencyResolveProcessReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List, +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ExecutionProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ExecutionProcessReport.kt new file mode 100644 index 00000000..b6dae584 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ExecutionProcessReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ExecutionProcessReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/InitializationProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/InitializationProcessReport.kt new file mode 100644 index 00000000..e5dc4f90 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/InitializationProcessReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class InitializationProcessReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleBuildHeatmap.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleBuildHeatmap.kt new file mode 100644 index 00000000..1ff6c64c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleBuildHeatmap.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleBuildHeatmap( + @Json(name = "path") + val path: String, + @Json(name = "dependant_modules_count") + val dependantModulesCount: Int, + @Json(name = "avg_median_cache_hit") + val avgMedianCacheHit: Long, + @Json(name = "total_build_count") + val totalBuildCount: Int +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleCacheHit.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleCacheHit.kt new file mode 100644 index 00000000..c93c22b1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleCacheHit.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleCacheHit( + @Json(name = "path") + val path: String, + @Json(name = "rate") + val rate: Long, + @Json(name = "diff_rate") + val diffRate: Float? = null, + @Json(name = "mean_values") + val meanValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleExecutionProcess.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleExecutionProcess.kt new file mode 100644 index 00000000..43472fbb --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleExecutionProcess.kt @@ -0,0 +1,47 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleExecutionProcess( + @Json(name = "path") + val path: String, + @Json(name = "avg_median_duration") + val avgMedianExecInMillis: Long, + @Json(name = "avg_median_parallel_duration") + val avgMedianParallelExecInMillis: Long, + @Json(name = "avg_median_parallel_rate") + val avgMedianParallelRate: Float, + @Json(name = "avg_median_coverage") + val avgMedianCoverageRate: Float, + @Json(name = "avg_median_durations") + val avgMedianExecs: List, + @Json(name = "diff_rate") + val diffRate: Float? +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleMethodCount.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleMethodCount.kt new file mode 100644 index 00000000..92f5658b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleMethodCount.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleMethodCount( + @Json(name = "path") + val path: String, + @Json(name = "value") + val value: Int, + @Json(name = "coverage") + val coverageRate: Float, + @Json(name = "diff_rate") + val diffRate: Float? = null +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleSourceCount.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleSourceCount.kt new file mode 100644 index 00000000..ed242a7b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModuleSourceCount.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModuleSourceCount( + @Json(name = "path") + val path: String, + @Json(name = "value") + val value: Int, + @Json(name = "coverage") + val coverageRate: Float, + @Json(name = "diff_rate") + val diffRate: Float? = null +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesBuildHeatmapReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesBuildHeatmapReport.kt new file mode 100644 index 00000000..16e3b568 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesBuildHeatmapReport.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesBuildHeatmapReport( + @Json(name = "modules") + val modules: List +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesCrashCountReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesCrashCountReport.kt new file mode 100644 index 00000000..ed2ae5c0 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesCrashCountReport.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesCrashCountMetric +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesCrashCountReport( + @Json(name = "modules") + val modules: List +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesDependencyGraphReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesDependencyGraphReport.kt new file mode 100644 index 00000000..d3aaabcd --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesDependencyGraphReport.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ModuleDependency +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesDependencyGraphReport( + @Json(name = "dependencies") + var dependencies: List +) : Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesExecutionProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesExecutionProcessReport.kt new file mode 100644 index 00000000..a2878b80 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesExecutionProcessReport.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesExecutionProcessReport( + @Json(name = "modules") + val modules: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesMethodCountReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesMethodCountReport.kt new file mode 100644 index 00000000..455f0b58 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesMethodCountReport.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesMethodCountReport( + @Json(name = "values") + val values: List, + @Json(name = "total_method_count") + val totalMethodCount: Int, + @Json(name = "total_diff_rate") + val totalDiffRate: Float? = null +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceCountReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceCountReport.kt new file mode 100644 index 00000000..a1c62520 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceCountReport.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesSourceCountReport( + @Json(name = "values") + val values: List, + @Json(name = "total_source_count") + val totalSourceCount: Int, + @Json(name = "total_diff_rate") + val totalDiffRate: Float? = null +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceSizeReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceSizeReport.kt new file mode 100644 index 00000000..95a7cbc9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesSourceSizeReport.kt @@ -0,0 +1,54 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesSourceSizeReport( + @Json(name = "values") + val values: List, + @Json(name = "total_source_size_by_kb") + val totalSourceSizeInKb: Long, + @Json(name = "total_diff_rate") + val totalDiffRate: Float? = null +): Serializable { + + @ExcludeJacocoGenerated + @JsonClass(generateAdapter = true) + data class ModuleSourceSize( + @Json(name = "path") + val path: String, + @Json(name = "size_by_kb") + val sizeInKb: Long, + @Json(name = "coverage") + val coverageRate: Float, + @Json(name = "diff_rate") + val diffRate: Float? = null + ): Serializable + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesTimelineReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesTimelineReport.kt new file mode 100644 index 00000000..fa32f622 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ModulesTimelineReport.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleTimeline +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ModulesTimelineReport( + @Json(name = "start") + val start: Long, + @Json(name = "end") + val end: Long, + @Json(name = "modules") + val modules: List, + @Json(name = "created_at") + val createdAt: Long +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/NonCacheableTasksReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/NonCacheableTasksReport.kt new file mode 100644 index 00000000..4938ddf7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/NonCacheableTasksReport.kt @@ -0,0 +1,36 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.metric.NonCacheableTasksMetric +import java.io.Serializable + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class NonCacheableTasksReport( + @Json(name = "tasks") + val tasks: List +): Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/OverallBuildProcessReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/OverallBuildProcessReport.kt new file mode 100644 index 00000000..4feae285 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/OverallBuildProcessReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class OverallBuildProcessReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ParallelExecutionRateReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ParallelExecutionRateReport.kt new file mode 100644 index 00000000..991e0008 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/ParallelExecutionRateReport.kt @@ -0,0 +1,35 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class ParallelExecutionRateReport( + @Json(name = "median_values") + val medianValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/Report.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/Report.kt new file mode 100644 index 00000000..d9601982 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/Report.kt @@ -0,0 +1,105 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonClass +import com.squareup.moshi.Moshi + +@JsonClass(generateAdapter = true) +data class Report( + + @Json(name = "branch") + val branch: String, + + @Json(name = "requested_tasks") + val requestedTasks: String, + + @Json(name = "initialization_process_report") + var initializationProcessReport: InitializationProcessReport? = null, + + @Json(name = "configuration_process_report") + var configurationProcessReport: ConfigurationProcessReport? = null, + + @Json(name = "execution_process_report") + var executionProcessReport: ExecutionProcessReport? = null, + + @Json(name = "overall_build_process_report") + var overallBuildProcessReport: OverallBuildProcessReport? = null, + + @Json(name = "modules_source_count_report") + var modulesSourceCountReport: ModulesSourceCountReport? = null, + + @Json(name = "modules_method_count_report") + var modulesMethodCountReport: ModulesMethodCountReport? = null, + + @Json(name = "cache_hit_report") + var cacheHitReport: CacheHitReport? = null, + + @Json(name = "success_build_rate_report") + var successBuildRateReport: SuccessBuildRateReport? = null, + + @Json(name = "dependency_resolve_process_report") + var dependencyResolveProcessReport: DependencyResolveProcessReport? = null, + + @Json(name = "parallel_execution_rate_report") + var parallelExecutionRateReport: ParallelExecutionRateReport? = null, + + @Json(name = "modules_execution_process_report") + var modulesExecutionProcessReport: ModulesExecutionProcessReport? = null, + + @Json(name = "modules_dependency_graph_report") + var modulesDependencyGraphReport: ModulesDependencyGraphReport? = null, + + @Json(name = "modules_timeline_report") + var modulesTimelineReport: ModulesTimelineReport? = null, + + @Json(name = "build_status_report") + var buildStatusReport: BuildStatusReport? = null, + + @Json(name = "modules_build_heatmap_report") + var modulesBuildHeatmapReport: ModulesBuildHeatmapReport? = null, + + @Json(name = "dependency_details_report") + var dependencyDetailsReport: DependencyDetailsReport? = null, + + @Json(name = "non_cacheable_tasks_report") + var nonCacheableTasksReport: NonCacheableTasksReport? = null, + + @Json(name = "modules_source_size_report") + var modulesSourceSizeReport: ModulesSourceSizeReport? = null, + + @Json(name = "modules_crash_count_report") + var modulesCrashCountReport: ModulesCrashCountReport? = null, + +) : java.io.Serializable { + + fun toJson(): String { + val moshi: Moshi = Moshi.Builder().build() + val jsonAdapter: JsonAdapter = ReportJsonAdapter(moshi) + return jsonAdapter.toJson(this) + } + +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/SuccessBuildRateReport.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/SuccessBuildRateReport.kt new file mode 100644 index 00000000..6ec7ccf8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/model/report/SuccessBuildRateReport.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.model.report + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint + +@ExcludeJacocoGenerated +@JsonClass(generateAdapter = true) +data class SuccessBuildRateReport( + @Json(name = "median_values") + val medianValues: List, + @Json(name = "mean_values") + val meanValues: List +): java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/repository/DatabaseRepository.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/repository/DatabaseRepository.kt new file mode 100644 index 00000000..c124a8c0 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/repository/DatabaseRepository.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.repository + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric + +interface DatabaseRepository { + fun saveNewMetric(metric: BuildMetric): Long + fun saveTemporaryMetric(metric: BuildMetric): Long + + fun isDayMetricExists(): Boolean + + fun getDayMetric(): Pair + fun getMetrics(period: Pair): List + fun getTemporaryMetrics(): List + + fun updateDayMetric(number: Long, metric: BuildMetric): Boolean + + fun dropOutdatedTemporaryMetrics(): Boolean + fun dropMetrics(): Boolean + fun dropOutdatedMetrics() + + fun getSingleMetric(key: String, branch: String): String? + fun updateSingleMetric(key: String, branch: String, value: String): Boolean + fun saveSingleMetric(key: String, branch: String, value: String): Boolean + fun dropSingleMetric(key: String, branch: String): Boolean + fun dropSingleMetrics(): Boolean +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetMetricsUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetMetricsUseCase.kt new file mode 100644 index 00000000..bb0692b2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetMetricsUseCase.kt @@ -0,0 +1,43 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository + +/** + * Gets the saved metrics from the database. + */ +class GetMetricsUseCase( + private val repo: DatabaseRepository +): UseCase, List>() { + + /** + * Get list of metrics from database by giving the start & end timestamp. + */ + override suspend fun execute(input: Pair): List { + return repo.getMetrics(input) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetModulesTimelineUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetModulesTimelineUseCase.kt new file mode 100644 index 00000000..25ef2e7c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/GetModulesTimelineUseCase.kt @@ -0,0 +1,47 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import com.squareup.moshi.Moshi +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesTimelineMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesTimelineMetricJsonAdapter +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.isNotNull + +class GetModulesTimelineUseCase( + val moshi: Moshi, + val repo: DatabaseRepository +): UseCase() { + + override suspend fun execute(branch: String): ModulesTimelineMetric? { + val result = repo.getSingleMetric( + key = "modulesExecTimeline", + branch = branch + ) + if (result.isNotNull()) + return ModulesTimelineMetricJsonAdapter(moshi).fromJson(result!!) + return null + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveMetricUseCase.kt new file mode 100644 index 00000000..a3975253 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveMetricUseCase.kt @@ -0,0 +1,126 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.analytics.metric.cachehit.update.UpdateCacheHitMetricStage +import io.github.janbarari.gradle.analytics.metric.cachehit.update.UpdateCacheHitMetricUseCase +import io.github.janbarari.gradle.analytics.metric.configurationprocess.update.UpdateConfigurationProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.configurationprocess.update.UpdateConfigurationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencydetails.update.UpdateDependencyDetailsMetricStage +import io.github.janbarari.gradle.analytics.metric.dependencydetails.update.UpdateDependencyDetailsMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.update.UpdateDependencyResolveProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.update.UpdateDependencyResolveProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.executionprocess.update.UpdateExecutionProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.executionprocess.update.UpdateExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.initializationprocess.update.UpdateInitializationProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.initializationprocess.update.UpdateInitializationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.update.UpdateModulesBuildHeatmapMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.update.UpdateModulesBuildHeatmapMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.update.UpdateModulesCrashCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.update.UpdateModulesCrashCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.update.UpdateModulesDependencyGraphMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.update.UpdateModulesDependencyGraphMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.update.UpdateModulesExecutionProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.update.UpdateModulesExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.update.UpdateModulesMethodCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.update.UpdateModulesMethodCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.update.UpdateModulesSourceCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.update.UpdateModulesSourceCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.update.UpdateModulesSourceSizeMetricStage +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.update.UpdateModulesSourceSizeMetricUseCase +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.update.UpdateNonCacheableTasksMetricStage +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.update.UpdateNonCacheableTasksMetricUseCase +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.update.UpdateOverallBuildProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.update.UpdateOverallBuildProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.update.UpdateParallelExecutionRateMetricStage +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.update.UpdateParallelExecutionRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.successbuildrate.update.UpdateSuccessBuildRateMetricStage +import io.github.janbarari.gradle.analytics.metric.successbuildrate.update.UpdateSuccessBuildRateMetricUseCase +import io.github.janbarari.gradle.core.UseCase + +/** + * Saves daily build metrics. + */ +class SaveMetricUseCase( + private val repo: DatabaseRepository, + private val updateInitializationProcessMetricUseCase: UpdateInitializationProcessMetricUseCase, + private val updateConfigurationProcessMetricUseCase: UpdateConfigurationProcessMetricUseCase, + private val updateExecutionProcessMetricUseCase: UpdateExecutionProcessMetricUseCase, + private val updateOverallBuildProcessMetricUseCase: UpdateOverallBuildProcessMetricUseCase, + private val updateModulesSourceCountMetricUseCase: UpdateModulesSourceCountMetricUseCase, + private val updateModulesMethodCountMetricUseCase: UpdateModulesMethodCountMetricUseCase, + private val updateCacheHitMetricUseCase: UpdateCacheHitMetricUseCase, + private val updateSuccessBuildRateMetricUseCase: UpdateSuccessBuildRateMetricUseCase, + private val updateDependencyResolveProcessMetricUseCase: UpdateDependencyResolveProcessMetricUseCase, + private val updateParallelExecutionRateMetricUseCase: UpdateParallelExecutionRateMetricUseCase, + private val updateModulesExecutionProcessMetricUseCase: UpdateModulesExecutionProcessMetricUseCase, + private val updateModulesDependencyGraphMetricUseCase: UpdateModulesDependencyGraphMetricUseCase, + private val updateModulesBuildHeatmapMetricUseCase: UpdateModulesBuildHeatmapMetricUseCase, + private val updateDependencyDetailsMetricUseCase: UpdateDependencyDetailsMetricUseCase, + private val updateNonCacheableTasksMetricUseCase: UpdateNonCacheableTasksMetricUseCase, + private val updateModulesSourceSizeMetricUseCase: UpdateModulesSourceSizeMetricUseCase, + private val updateModulesCrashCountMetricUseCase: UpdateModulesCrashCountMetricUseCase, +) : UseCase() { + + /** + * Upsert the daily metric in the database. + * + * @param input BuildMetric of the build. + */ + override suspend fun execute(input: BuildMetric): Long { + if (!repo.isDayMetricExists()) return repo.saveNewMetric(input) + + val pipeline = UpdateMetricPipeline(UpdateInitializationProcessMetricStage(updateInitializationProcessMetricUseCase)) + .addStage(UpdateConfigurationProcessMetricStage(updateConfigurationProcessMetricUseCase)) + .addStage(UpdateExecutionProcessMetricStage(updateExecutionProcessMetricUseCase)) + .addStage(UpdateOverallBuildProcessMetricStage(updateOverallBuildProcessMetricUseCase)) + .addStage(UpdateModulesSourceCountMetricStage(updateModulesSourceCountMetricUseCase)) + .addStage(UpdateModulesMethodCountMetricStage(updateModulesMethodCountMetricUseCase)) + .addStage(UpdateCacheHitMetricStage(updateCacheHitMetricUseCase)) + .addStage(UpdateSuccessBuildRateMetricStage(updateSuccessBuildRateMetricUseCase)) + .addStage(UpdateDependencyResolveProcessMetricStage(updateDependencyResolveProcessMetricUseCase)) + .addStage(UpdateParallelExecutionRateMetricStage(updateParallelExecutionRateMetricUseCase)) + .addStage(UpdateModulesExecutionProcessMetricStage(updateModulesExecutionProcessMetricUseCase)) + .addStage(UpdateModulesDependencyGraphMetricStage(updateModulesDependencyGraphMetricUseCase)) + .addStage(UpdateModulesBuildHeatmapMetricStage(updateModulesBuildHeatmapMetricUseCase)) + .addStage(UpdateDependencyDetailsMetricStage(updateDependencyDetailsMetricUseCase)) + .addStage(UpdateNonCacheableTasksMetricStage(updateNonCacheableTasksMetricUseCase)) + .addStage(UpdateModulesSourceSizeMetricStage(updateModulesSourceSizeMetricUseCase)) + .addStage(UpdateModulesCrashCountMetricStage(updateModulesCrashCountMetricUseCase)) + .execute( + BuildMetric( + branch = input.branch, + requestedTasks = input.requestedTasks, + createdAt = input.createdAt, + gitHeadCommitHash = input.gitHeadCommitHash + ) + ) + + val dayMetricNumber = repo.getDayMetric().second + repo.updateDayMetric(dayMetricNumber, pipeline) + return dayMetricNumber + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveTemporaryMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveTemporaryMetricUseCase.kt new file mode 100644 index 00000000..57ec6cb7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/SaveTemporaryMetricUseCase.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository + +/** + * Saves day build metrics. + * It's temporary and only valid for a day. to measure a valid result from all + * build metrics of the day. + */ +class SaveTemporaryMetricUseCase(private val repo: DatabaseRepository): UseCase() { + + override suspend fun execute(input: BuildMetric): Long { + return repo.saveTemporaryMetric(input) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpdateMetricPipeline.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpdateMetricPipeline.kt new file mode 100644 index 00000000..9ec01c5f --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpdateMetricPipeline.kt @@ -0,0 +1,29 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Pipeline +import io.github.janbarari.gradle.core.Stage + +class UpdateMetricPipeline(firstStage: Stage): Pipeline(firstStage) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpsertModulesTimelineUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpsertModulesTimelineUseCase.kt new file mode 100644 index 00000000..62937839 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/domain/usecase/UpsertModulesTimelineUseCase.kt @@ -0,0 +1,57 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.domain.usecase + +import com.squareup.moshi.Moshi +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesTimelineMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesTimelineMetricJsonAdapter +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.isNotNull + +class UpsertModulesTimelineUseCase( + private val moshi: Moshi, + private val repo: DatabaseRepository +): UseCase, Boolean>() { + + override suspend fun execute(input: Pair): Boolean { + val branch = input.first + val model = input.second + + if (repo.getSingleMetric(key = "modulesExecTimeline", branch = branch).isNotNull()) { + return repo.updateSingleMetric( + key = "modulesExecTimeline", + branch = branch, + value = ModulesTimelineMetricJsonAdapter(moshi).toJson(model) + ) + } + + return repo.saveSingleMetric( + key = "modulesExecTimeline", + branch = branch, + value = ModulesTimelineMetricJsonAdapter(moshi).toJson(model) + ) + + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/CreateBuildStatusReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/CreateBuildStatusReportStage.kt new file mode 100644 index 00000000..7e90ac14 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/CreateBuildStatusReportStage.kt @@ -0,0 +1,151 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.buildstatus.render + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.BuildStatusReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.millisToSeconds +import io.github.janbarari.gradle.utils.MathUtils + +class CreateBuildStatusReportStage( + private val modules: List, + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + return input.apply { + buildStatusReport = BuildStatusReport( + cumulativeOverallBuildProcessBySeconds = getCumulativeOverallBuildProcessInSeconds(), + avgOverallBuildProcessBySeconds = getAvgOverallBuildProcessInSeconds(), + totalBuildProcessCount = metrics.size, + totalProjectModulesCount = modules.size, + cumulativeDependencyResolveBySeconds = getCumulativeDependencyResolveInSeconds(), + cumulativeParallelExecutionBySeconds = getCumulativeParallelExecutionInSeconds(), + avgParallelExecutionRate = getAvgParallelExecutionRate(), + totalFailedBuildCount = getTotalFailedBuildCount(), + totalSucceedBuildCount = getTotalSuccessBuildCount(), + avgCacheHitRate = getAvgCacheHitRate(), + avgInitializationProcessByMillis = getAvgInitializationProcessInMillis(), + avgConfigurationProcessByMillis = getAvgConfigurationProcessInMillis(), + avgExecutionProcessBySeconds = getAvgExecutionProcessInSeconds() + ) + } + } + + fun getCumulativeOverallBuildProcessInSeconds(): Long { + return metrics + .filter { it.overallBuildProcessMetric.isNotNull() } + .sumOf { metric -> + metric.overallBuildProcessMetric!!.median.millisToSeconds() + } + } + + fun getAvgOverallBuildProcessInSeconds(): Long { + return MathUtils.longMedian( + metrics.filter { it.overallBuildProcessMetric.isNotNull() } + .map { metric -> + metric.overallBuildProcessMetric!!.median.millisToSeconds() + } + ) + } + + fun getCumulativeDependencyResolveInSeconds(): Long { + return metrics + .filter { it.dependencyResolveProcessMetric.isNotNull() } + .sumOf { metric -> + metric.dependencyResolveProcessMetric!!.median.millisToSeconds() + } + } + + fun getCumulativeParallelExecutionInSeconds(): Long { + return metrics + .filter { it.executionProcessMetric.isNotNull() && it.parallelExecutionRateMetric.isNotNull() } + .sumOf { metric -> + MathUtils.sumWithPercentage( + metric.executionProcessMetric!!.median.millisToSeconds(), + metric.parallelExecutionRateMetric!!.medianRate.toInt() + ) + } + } + + fun getAvgParallelExecutionRate(): Float { + return MathUtils.floatMedian( + metrics.filter { it.parallelExecutionRateMetric.isNotNull() } + .map { metric -> + metric.parallelExecutionRateMetric!!.medianRate.toFloat() + } + ) + } + + fun getTotalFailedBuildCount(): Int { + return metrics + .filter { it.successBuildRateMetric.isNotNull() } + .sumOf { it.successBuildRateMetric!!.fails } + } + + fun getTotalSuccessBuildCount(): Int { + return metrics + .filter { it.successBuildRateMetric.isNotNull() } + .sumOf { it.successBuildRateMetric!!.successes } + } + + fun getAvgCacheHitRate(): Float { + return MathUtils.floatMedian( + metrics + .filter { it.cacheHitMetric.isNotNull() } + .map { it.cacheHitMetric!!.rate.toFloat() } + ) + } + + fun getAvgInitializationProcessInMillis(): Long { + return MathUtils.longMedian( + metrics.filter { it.initializationProcessMetric.isNotNull() } + .map { metric -> + metric.initializationProcessMetric!!.median + } + ) + } + + fun getAvgConfigurationProcessInMillis(): Long { + return MathUtils.longMedian( + metrics.filter { it.configurationProcessMetric.isNotNull() } + .map { metric -> + metric.configurationProcessMetric!!.median + } + ) + } + + fun getAvgExecutionProcessInSeconds(): Long { + return MathUtils.longMedian( + metrics.filter { it.executionProcessMetric.isNotNull() } + .map { metric -> + metric.executionProcessMetric!!.median.millisToSeconds() + } + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/RenderBuildStatusReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/RenderBuildStatusReportStage.kt new file mode 100644 index 00000000..39ffdeae --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/buildstatus/render/RenderBuildStatusReportStage.kt @@ -0,0 +1,84 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.buildstatus.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.round +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.DateTimeUtils +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderBuildStatusReportStage( + private val report: Report +): Stage { + + companion object { + private const val BUILD_STATUS_METRIC_TEMPLATE_ID = "%build-status-metric%" + private const val BUILD_STATUS_METRIC_TEMPLATE_FILENAME = "build-status-metric-template" + } + + override suspend fun process(input: String): String { + if (report.buildStatusReport.isNull()) + return input.replace(BUILD_STATUS_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(BUILD_STATUS_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Build Status is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(BUILD_STATUS_METRIC_TEMPLATE_FILENAME) + report.buildStatusReport.whenNotNull { + renderedTemplate = renderedTemplate + .replace("%cumulative-build-process-duration%", + DateTimeUtils.convertSecondsToHumanReadableTime(cumulativeOverallBuildProcessBySeconds) + ) + .replace("%avg-build-process-duration%", + DateTimeUtils.convertSecondsToHumanReadableTime(avgOverallBuildProcessBySeconds) + ) + .replace("%total-build-process-count%", totalBuildProcessCount.toString()) + .replace("%total-modules-count%", totalProjectModulesCount.toString()) + .replace("%cumulative-parallel-exec-duration%", + DateTimeUtils.convertSecondsToHumanReadableTime(cumulativeParallelExecutionBySeconds) + ) + .replace("%avg-parallel-exec-rate%", "${avgParallelExecutionRate.round()}%") + .replace("%total-succeed-build-count%", "$totalSucceedBuildCount") + .replace("%total-failed-build-count%", "$totalFailedBuildCount") + .replace("%avg-cache-hit-rate%", "${avgCacheHitRate.round()}%") + .replace("%cumulative-dependency-resolve-duration%", + DateTimeUtils.convertSecondsToHumanReadableTime(cumulativeDependencyResolveBySeconds) + ) + .replace("%avg-initialization-process-duration%", "${avgInitializationProcessByMillis}ms") + .replace("%avg-configuration-process-duration%", "${avgConfigurationProcessByMillis}ms") + .replace("%avg-execution-process-duration%", "${avgExecutionProcessBySeconds}s") + } + return renderedTemplate + } + + + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricStage.kt new file mode 100644 index 00000000..578054fd --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateCacheHitMetricStage( + private val buildInfo: BuildInfo, + private val createCacheHitMetricUseCase: CreateCacheHitMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + cacheHitMetric = createCacheHitMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricUseCase.kt new file mode 100644 index 00000000..2a42c91c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/create/CreateCacheHitMetricUseCase.kt @@ -0,0 +1,72 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.CacheHitMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleCacheHit +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach + +class CreateCacheHitMetricUseCase( + private val modules: List +): UseCase() { + + override suspend fun execute(input: BuildInfo): CacheHitMetric { + var cachedTasksCount = 0 + input.executedTasks.whenEach { + if (!isSkipped) { + if (isUpToDate || isFromCache) { + cachedTasksCount++ + } + } + } + val overallCacheHitRate = cachedTasksCount.toPercentageOf(input.executedTasks.filter { it.isSkipped.not() }.size) + + val modulesCacheHit = mutableListOf() + modules.whenEach { + var moduleCachedTasksCount = 0 + var moduleTasksCount = 0 + input.executedTasks.filter { it.path.startsWith(path) } + .whenEach { + moduleTasksCount++ + if (!isSkipped) { + if (isUpToDate || isFromCache) { + moduleCachedTasksCount++ + } + } + } + val moduleCacheHitRate = moduleCachedTasksCount.toPercentageOf(moduleTasksCount) + modulesCacheHit.add( + ModuleCacheHit( + path = path, + rate = moduleCacheHitRate.toLong() + ) + ) + } + return CacheHitMetric(overallCacheHitRate.toLong(), modulesCacheHit) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/CreateCacheHitReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/CreateCacheHitReportStage.kt new file mode 100644 index 00000000..0d8c921a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/CreateCacheHitReportStage.kt @@ -0,0 +1,162 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.CacheHitReport +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleCacheHit +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.diffPercentageOf +import io.github.janbarari.gradle.extension.hasMultipleItems +import io.github.janbarari.gradle.extension.hasSingleItem +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.whenEach + +class CreateCacheHitReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val metrics = metrics.filter { + it.cacheHitMetric.isNotNull() + } + + if (metrics.hasSingleItem()) { + return input.apply { + cacheHitReport = generateSingleItemReport(metrics.single()) + } + } + + if (metrics.hasMultipleItems()) { + return input.apply { + cacheHitReport = generateMultipleItemsReport(metrics) + } + } + + return input + } + + private fun generateSingleItemReport(metric: BuildMetric): CacheHitReport { + val modules = mutableListOf() + val overallHit = metric.cacheHitMetric!!.rate + + val overallHitTimespanChartPoint = TimespanPoint( + value = overallHit, + from = metric.createdAt + ) + + val overallValues = listOf( + overallHitTimespanChartPoint + ) + + metric.cacheHitMetric!!.modules.whenEach { + val values = mutableListOf( + TimespanPoint( + value = rate, from = metric.createdAt + ) + ) + modules.add( + ModuleCacheHit( + path = path, + rate = rate, + diffRate = null, + meanValues = values + ) + ) + } + + return CacheHitReport( + modules = modules.sortedByDescending { it.rate }, + overallRate = overallHit, + overallDiffRate = null, + overallMeanValues = overallValues + ) + } + + private fun generateMultipleItemsReport(metrics: List): CacheHitReport { + val firstCacheHitRatio = metrics.first().cacheHitMetric!!.rate + val lastCacheHitRatio = metrics.last().cacheHitMetric!!.rate + + val overallDiffRatio = firstCacheHitRatio.diffPercentageOf(lastCacheHitRatio) + + val overallHit = metrics.last().cacheHitMetric!!.rate + + val overallValuesTimestampChartPoints = mutableListOf() + metrics.whenEach { + overallValuesTimestampChartPoints.add( + TimespanPoint( + value = cacheHitMetric!!.rate, from = createdAt + ) + ) + } + val overallMeanValues = overallValuesTimestampChartPoints.minimize(12) + + val modules = mutableListOf() + metrics.last().cacheHitMetric!!.modules.whenEach { + modules.add( + ModuleCacheHit( + path = path, + rate = rate, + diffRate = calculateModuleCacheHitDiffRatio(metrics, path, rate), + meanValues = getModuleChartPoints(path) + ) + ) + } + + return CacheHitReport( + modules = modules, + overallMeanValues = overallMeanValues, + overallRate = overallHit, + overallDiffRate = overallDiffRatio + ) + } + + private fun calculateModuleCacheHitDiffRatio(metrics: List, path: String, value: Long): Float? { + return metrics.first().cacheHitMetric!! + .modules.find { it.path == path }?.rate?.diffPercentageOf(value) + } + + private fun getModuleChartPoints(path: String): List { + val timestampChartPoints = mutableListOf() + metrics + .filter { + it.cacheHitMetric.isNotNull() + }.whenEach { + cacheHitMetric!!.modules + .filter { it.path == path } + .whenEach { + timestampChartPoints.add( + TimespanPoint( + value = rate, + from = createdAt + ) + ) + } + } + + return timestampChartPoints.minimize(12) + } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/RenderCacheHitReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/RenderCacheHitReportStage.kt new file mode 100644 index 00000000..ae847748 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/report/RenderCacheHitReportStage.kt @@ -0,0 +1,160 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.report + +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleCacheHit +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderCacheHitReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CACHE_HIT_METRIC_TEMPLATE_ID = "%cache-hit-metric%" + private const val CACHE_HIT_METRIC_TEMPLATE_FILE_NAME = "cache-hit-metric-template" + } + + override suspend fun process(input: String): String { + if (report.cacheHitReport.isNull()) + return input.replace(CACHE_HIT_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(CACHE_HIT_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Cache Hit is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(CACHE_HIT_METRIC_TEMPLATE_FILE_NAME) + report.cacheHitReport.whenNotNull { + val tableData = buildString { + modules.forEachIndexed { index, it -> + var diffRatioRender = "-" + it.diffRate.whenNotNull { + diffRatioRender = if (this > 0) + "+${this}%" + else if (this < 0) + "-${this}%" + else + "Equals" + } + append(""" + + ${index + 1} + ${it.path} + ${it.rate}% + $diffRatioRender + + """.trimIndent()) + } + } + + val overallCacheHit = "$overallRate%" + var overallDiffRatioRender = "-" + overallDiffRate.whenNotNull { + overallDiffRatioRender = if (this > 0) + "+${this}%" + else if (this < 0) + "-${this}%" + else + "Equals" + } + + var bestChartValues = "[]" + var worstChartValues = "[]" + var bwLabels = "[]" + if (modules.isNotEmpty()) { + bestChartValues = modules + .first { it.path == getBestModulePath(modules) } + .meanValues + .map { it.value } + .toIntList() + .toString() + + worstChartValues = modules + .first { it.path == getWorstModulePath(modules) } + .meanValues + .map { it.value } + .toIntList() + .toString() + + bwLabels = modules + .first { it.path == getWorstModulePath(modules) } + .meanValues + .mapToChartPoints() + .map { it.description } + .toArrayString() + } + + renderedTemplate = renderedTemplate + .replace("%chart-values%", getOverallChartValues().toString()) + .replace("%chart-labels%", getOverallChartLabels().toArrayString()) + .replace("%table-data%", tableData) + .replace("%overall-cache-hit%", overallCacheHit) + .replace("%overall-diff-rate%", overallDiffRatioRender) + .replace("%best-values%", bestChartValues) + .replace("%worst-values%", worstChartValues) + .replace("%bw-labels%", bwLabels) + .replace("%worst-module-name%", "\"${getWorstModulePath(modules)}\"") + .replace("%best-module-name%", "\"${getBestModulePath(modules)}\"") + } + return renderedTemplate + } + + fun getBestModulePath(modules: List): String? { + if (modules.isEmpty()) return null + return modules.sortedByDescending { module -> + module.meanValues.sumOf { it.value } + }.first().path + } + + fun getWorstModulePath(modules: List): String? { + if (modules.isEmpty()) return null + return modules.sortedByDescending { module -> + module.meanValues.sumOf { it.value } + }.last().path + } + + fun getOverallChartValues(): List { + return report.cacheHitReport!! + .overallMeanValues + .map { it.value } + .toIntList() + } + + fun getOverallChartLabels(): List { + return report.cacheHitReport!! + .overallMeanValues + .mapToChartPoints() + .map { it.description } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricStage.kt new file mode 100644 index 00000000..5e942e61 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateCacheHitMetricStage( + private val updateCacheHitMetricUseCase: UpdateCacheHitMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + cacheHitMetric = updateCacheHitMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricUseCase.kt new file mode 100644 index 00000000..d69d90c8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/cachehit/update/UpdateCacheHitMetricUseCase.kt @@ -0,0 +1,66 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.cachehit.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.CacheHitMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.modify +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateCacheHitMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): CacheHitMetric? { + val temporaryMetrics = repo.getTemporaryMetrics() + + val hitRates = temporaryMetrics.filter { it.cacheHitMetric.isNotNull() } + .map { it.cacheHitMetric!!.rate } + + val modules = temporaryMetrics.last().cacheHitMetric?.modules?.modify { + rate = getModuleMeanCacheHit(path, temporaryMetrics) + } ?: return null + + return CacheHitMetric( + rate = MathUtils.longMean(hitRates), + modules = modules + ) + } + + private fun getModuleMeanCacheHit(path: String, metrics: List): Long { + val hitRates = metrics + .filter { + it.cacheHitMetric.isNotNull() + && it.cacheHitMetric!!.modules.find { module -> module.path == path }.isNotNull() + } + .map { + it.cacheHitMetric!!.modules.find { module -> module.path == path }!!.rate + } + + return MathUtils.longMean(hitRates) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricStage.kt new file mode 100644 index 00000000..ff665ac2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateConfigurationProcessMetricStage( + private val buildInfo: BuildInfo, + private val createConfigurationProcessMetricUseCase: CreateConfigurationProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + configurationProcessMetric = createConfigurationProcessMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricUseCase.kt new file mode 100644 index 00000000..e4e0968b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/create/CreateConfigurationProcessMetricUseCase.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.ConfigurationProcessMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateConfigurationProcessMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): ConfigurationProcessMetric { + return ConfigurationProcessMetric( + median = input.getConfigurationDuration().toMillis(), + mean = input.getConfigurationDuration().toMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/CreateConfigurationProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/CreateConfigurationProcessReportStage.kt new file mode 100644 index 00000000..62f59a00 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/CreateConfigurationProcessReportStage.kt @@ -0,0 +1,68 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ConfigurationProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToConfigurationMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToConfigurationMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateConfigurationProcessReportStage( + private val metrics: List +) : Stage { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.configurationProcessMetric.isNotNull() && + metric.configurationProcessMetric?.median?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToConfigurationMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.configurationProcessMetric.isNotNull() && + metric.configurationProcessMetric?.mean?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToConfigurationMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + configurationProcessReport = ConfigurationProcessReport( + medianValues = medianChartPoints, + meanValues = meanChartPoints, + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/RenderConfigurationProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/RenderConfigurationProcessReportStage.kt new file mode 100644 index 00000000..1818c251 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/report/RenderConfigurationProcessReportStage.kt @@ -0,0 +1,102 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates html result for [io.github.janbarari.gradle.analytics.domain.model.report.ConfigurationProcessReport]. + */ +class RenderConfigurationProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val CONFIGURATION_METRIC_TEMPLATE_ID = "%configuration-process-metric%" + private const val CONFIGURATION_METRIC_TEMPLATE_FILE_NAME = "configuration-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.configurationProcessReport.isNull()) { + return input.replace(CONFIGURATION_METRIC_TEMPLATE_ID, getEmptyRender()) + } + + return input.replace(CONFIGURATION_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(CONFIGURATION_METRIC_TEMPLATE_FILE_NAME) + report.configurationProcessReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + val maximumValue = Math.max(medianValues.maxValue(), meanValues.maxValue()) + val minimumValue = Math.min(medianValues.minValue(), meanValues.minValue()) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(maximumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMinValue = MathUtils.deductWithPercentage(minimumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + renderedTemplate = renderedTemplate + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Configuration Process is not available!") + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricStage.kt new file mode 100644 index 00000000..834ec99f --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateConfigurationProcessMetricStage( + private val updateConfigurationProcessMetricUseCase: UpdateConfigurationProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + configurationProcessMetric = updateConfigurationProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricUseCase.kt new file mode 100644 index 00000000..6bb6257b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/configurationprocess/update/UpdateConfigurationProcessMetricUseCase.kt @@ -0,0 +1,66 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.configurationprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ConfigurationProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.extension.whenTrue +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates a new metric with Median mathematics based on temporary metrics. + */ +class UpdateConfigurationProcessMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun execute(): ConfigurationProcessMetric { + val medianValues = mutableListOf() + val meanValues = mutableListOf() + repo.getTemporaryMetrics().whenEach { + configurationProcessMetric.whenNotNull { + // In order to have accurate metric, don't add metric value in Median dataset if it's under 50 milliseconds. + median.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + medianValues.add(median) + } + mean.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + meanValues.add(mean) + } + } + } + + return ConfigurationProcessMetric( + median = MathUtils.longMedian(medianValues), + mean = MathUtils.longMean(meanValues) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricStage.kt new file mode 100644 index 00000000..10c131f3 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateDependencyDetailsMetricStage( + private val createDependencyDetailsMetricUseCase: CreateDependencyDetailsMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + dependencyDetailsMetric = createDependencyDetailsMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricUseCase.kt new file mode 100644 index 00000000..da65467d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/create/CreateDependencyDetailsMetricUseCase.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.create + +import io.github.janbarari.gradle.analytics.domain.model.Dependency +import io.github.janbarari.gradle.analytics.domain.model.metric.DependencyDetailsMetric +import io.github.janbarari.gradle.core.UseCaseNoInput + +class CreateDependencyDetailsMetricUseCase( + private val thirdPartyDependencies: List +) : UseCaseNoInput() { + + override suspend fun execute(): DependencyDetailsMetric { + return DependencyDetailsMetric( + dependencies = thirdPartyDependencies + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/CreateDependencyDetailsReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/CreateDependencyDetailsReportStage.kt new file mode 100644 index 00000000..039d4258 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/CreateDependencyDetailsReportStage.kt @@ -0,0 +1,46 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.render + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.DependencyDetailsReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.whenNotNull + +class CreateDependencyDetailsReportStage( + private val metrics: List +): Stage { + + override suspend fun process(input: Report): Report { + return input.apply { + metrics.last().dependencyDetailsMetric.whenNotNull { + dependencyDetailsReport = DependencyDetailsReport( + dependencies = dependencies, + cumulativeDependenciesSizeByKb = dependencies.sumOf { it.sizeByKb } + ) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/RenderDependencyDetailsReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/RenderDependencyDetailsReportStage.kt new file mode 100644 index 00000000..e1efd632 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/render/RenderDependencyDetailsReportStage.kt @@ -0,0 +1,91 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderDependencyDetailsReportStage( + private val report: Report +) : Stage { + + companion object { + private const val DEPENDENCY_DETAILS_METRIC_TEMPLATE_ID = "%dependency-details-metric%" + private const val DEPENDENCY_DETAILS_METRIC_TEMPLATE_FILE_NAME = "dependency-details-metric-template" + } + + override suspend fun process(input: String): String { + if (report.dependencyDetailsReport.isNull()) return input.replace( + DEPENDENCY_DETAILS_METRIC_TEMPLATE_ID, getEmptyRender() + ) + + return input.replace(DEPENDENCY_DETAILS_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Dependency Details is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(DEPENDENCY_DETAILS_METRIC_TEMPLATE_FILE_NAME) + report.dependencyDetailsReport.whenNotNull { + val chartLabels = mutableListOf() + val chartDataset = mutableListOf() + dependencies.whenEach { + chartLabels.add("$moduleGroup:$moduleName") + chartDataset.add(sizeByKb) + } + + val tableDataset = buildString { + dependencies + .filter { it.sizeByKb > 0 } + .sortedByDescending { it.sizeByKb } + .forEachIndexed { index, dependency -> + append("") + append("${index + 1}") + append("${dependency.name}") + append("${dependency.sizeByKb}kb") + append("") + } + } + + renderedTemplate = if (chartDataset.sum() > 1000) { + renderedTemplate.replace("%cumulative-dependencies-size%", "%sMb".format((chartDataset.sum() / 1024))) + } else { + renderedTemplate.replace("%cumulative-dependencies-size%", "%skb".format(chartDataset.sum())) + } + + renderedTemplate = renderedTemplate + .replace("%table-dataset%", tableDataset) + .replace("%chart-labels%", chartLabels.toArrayString()) + .replace("%chart-dataset%", chartDataset.toString()) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricStage.kt new file mode 100644 index 00000000..c8d4f725 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateDependencyDetailsMetricStage( + private val updateDependencyDetailsMetricUseCase: UpdateDependencyDetailsMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + dependencyDetailsMetric = updateDependencyDetailsMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricUseCase.kt new file mode 100644 index 00000000..dc409475 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencydetails/update/UpdateDependencyDetailsMetricUseCase.kt @@ -0,0 +1,37 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencydetails.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.DependencyDetailsMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateDependencyDetailsMetricUseCase( + private val repo: DatabaseRepository +): UseCaseNoInput() { + + override suspend fun execute(): DependencyDetailsMetric { + return repo.getTemporaryMetrics().last().dependencyDetailsMetric!! + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricStage.kt new file mode 100644 index 00000000..b1fac293 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricStage.kt @@ -0,0 +1,43 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateDependencyResolveProcessMetricStage( + private val buildInfo: BuildInfo, + private val createDependencyResolveProcessMetricUseCase: CreateDependencyResolveProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + dependencyResolveProcessMetric = createDependencyResolveProcessMetricUseCase.execute(buildInfo) + } + } + } + +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricUseCase.kt new file mode 100644 index 00000000..cd37cdd5 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/create/CreateDependencyResolveProcessMetricUseCase.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.DependencyResolveProcessMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateDependencyResolveProcessMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): DependencyResolveProcessMetric { + return DependencyResolveProcessMetric( + median = input.getTotalDependenciesResolveDuration().toMillis(), + mean = input.getTotalDependenciesResolveDuration().toMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/CreateDependencyResolveProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/CreateDependencyResolveProcessReportStage.kt new file mode 100644 index 00000000..379a984a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/CreateDependencyResolveProcessReportStage.kt @@ -0,0 +1,68 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.DependencyResolveProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToDependencyResolveMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToDependencyResolveMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateDependencyResolveProcessReportStage( + private val metrics: List +) : Stage { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.dependencyResolveProcessMetric.isNotNull() && + metric.dependencyResolveProcessMetric?.median?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToDependencyResolveMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.dependencyResolveProcessMetric.isNotNull() && + metric.dependencyResolveProcessMetric?.mean?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToDependencyResolveMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + dependencyResolveProcessReport = DependencyResolveProcessReport( + medianValues = medianChartPoints, + meanValues = meanChartPoints, + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/RenderDependencyResolveProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/RenderDependencyResolveProcessReportStage.kt new file mode 100644 index 00000000..5bbbb74a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/report/RenderDependencyResolveProcessReportStage.kt @@ -0,0 +1,102 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates html result for [io.github.janbarari.gradle.analytics.domain.model.report.DependencyResolveProcessReport]. + */ +class RenderDependencyResolveProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val DEPENDENCY_RESOLVE_METRIC_TEMPLATE_ID = "%dependency-resolve-process-metric%" + private const val DEPENDENCY_RESOLVE_METRIC_TEMPLATE_FILE_NAME = "dependency-resolve-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.dependencyResolveProcessReport.isNull()) { + return input.replace(DEPENDENCY_RESOLVE_METRIC_TEMPLATE_ID, getEmptyRender()) + } + + return input.replace(DEPENDENCY_RESOLVE_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(DEPENDENCY_RESOLVE_METRIC_TEMPLATE_FILE_NAME) + report.dependencyResolveProcessReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + val maximumValue = Math.max(medianValues.maxValue(), meanValues.maxValue()) + val minimumValue = Math.min(medianValues.minValue(), meanValues.minValue()) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(maximumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMinValue = MathUtils.deductWithPercentage(minimumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + renderedTemplate = renderedTemplate + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Dependency Resolve Process is not available!") + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricStage.kt new file mode 100644 index 00000000..a975e44f --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateDependencyResolveProcessMetricStage( + private val updateDependencyResolveProcessMetricUseCase: UpdateDependencyResolveProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + dependencyResolveProcessMetric = updateDependencyResolveProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricUseCase.kt new file mode 100644 index 00000000..3d227899 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/dependencyresolveprocess/update/UpdateDependencyResolveProcessMetricUseCase.kt @@ -0,0 +1,66 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.DependencyResolveProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.extension.whenTrue +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates a new metric with Median mathematics based on temporary metrics. + */ +class UpdateDependencyResolveProcessMetricUseCase( + private val repo: DatabaseRepository +): UseCaseNoInput() { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun execute(): DependencyResolveProcessMetric { + val medianValues = mutableListOf() + val meanValues = mutableListOf() + repo.getTemporaryMetrics().whenEach { + dependencyResolveProcessMetric.whenNotNull { + // In order to have accurate metric, don't add metric value in Median dataset if it's under 50 milliseconds. + median.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + medianValues.add(median) + } + mean.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + meanValues.add(mean) + } + } + } + + return DependencyResolveProcessMetric( + median = MathUtils.longMedian(medianValues), + mean = MathUtils.longMean(meanValues) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricStage.kt new file mode 100644 index 00000000..5d0adb6b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateExecutionProcessMetricStage( + private val buildInfo: BuildInfo, + private val createExecutionProcessMetricUseCase: CreateExecutionProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + executionProcessMetric = createExecutionProcessMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricUseCase.kt new file mode 100644 index 00000000..ca6424cb --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/create/CreateExecutionProcessMetricUseCase.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.ExecutionProcessMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateExecutionProcessMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): ExecutionProcessMetric { + return ExecutionProcessMetric( + median = input.getExecutionDuration().toMillis(), + mean = input.getExecutionDuration().toMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/CreateExecutionProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/CreateExecutionProcessReportStage.kt new file mode 100644 index 00000000..f742baca --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/CreateExecutionProcessReportStage.kt @@ -0,0 +1,67 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ExecutionProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToExecutionMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToExecutionMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateExecutionProcessReportStage( + private val metrics: List +) : Stage { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.executionProcessMetric.isNotNull() && + metric.executionProcessMetric?.median?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToExecutionMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.executionProcessMetric.isNotNull() && + metric.executionProcessMetric?.mean?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToExecutionMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + executionProcessReport = ExecutionProcessReport( + medianValues = medianChartPoints, + meanValues = meanChartPoints, + ) + } + } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/RenderExecutionProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/RenderExecutionProcessReportStage.kt new file mode 100644 index 00000000..a251ee3c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/report/RenderExecutionProcessReportStage.kt @@ -0,0 +1,98 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +class RenderExecutionProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val EXECUTION_METRIC_TEMPLATE_ID = "%execution-process-metric%" + private const val EXECUTION_METRIC_TEMPLATE_FILE_NAME = "execution-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.executionProcessReport.isNull()) + return input.replace(EXECUTION_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(EXECUTION_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Execution Process is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(EXECUTION_METRIC_TEMPLATE_FILE_NAME) + report.executionProcessReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + val maximumValue = Math.max(medianValues.maxValue(), meanValues.maxValue()) + val minimumValue = Math.min(medianValues.minValue(), meanValues.minValue()) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(maximumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMinValue = MathUtils.deductWithPercentage(minimumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + renderedTemplate = renderedTemplate + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricStage.kt new file mode 100644 index 00000000..1b5dddf7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateExecutionProcessMetricStage( + private val updateExecutionProcessMetricUseCase: UpdateExecutionProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + executionProcessMetric = updateExecutionProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricUseCase.kt new file mode 100644 index 00000000..a7700d43 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/executionprocess/update/UpdateExecutionProcessMetricUseCase.kt @@ -0,0 +1,63 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.executionprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ExecutionProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.extension.whenTrue +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateExecutionProcessMetricUseCase( + private val repo: DatabaseRepository +): UseCaseNoInput() { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun execute(): ExecutionProcessMetric { + val medianValues = mutableListOf() + val meanValues = mutableListOf() + repo.getTemporaryMetrics().whenEach { + executionProcessMetric.whenNotNull { + // In order to have accurate metric, don't add metric value in Median dataset if it's under 50 milliseconds. + median.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + medianValues.add(median) + } + mean.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + meanValues.add(mean) + } + } + } + + return ExecutionProcessMetric( + median = MathUtils.longMedian(medianValues), + mean = MathUtils.longMean(meanValues) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricStage.kt new file mode 100644 index 00000000..b7005a2c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateInitializationProcessMetricStage( + private val buildInfo: BuildInfo, + private val createInitializationProcessMetricUseCase: CreateInitializationProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + initializationProcessMetric = createInitializationProcessMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricUseCase.kt new file mode 100644 index 00000000..d08fe890 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/create/CreateInitializationProcessMetricUseCase.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.analytics.domain.model.metric.InitializationProcessMetric + +class CreateInitializationProcessMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): InitializationProcessMetric { + return InitializationProcessMetric( + median = input.getInitializationDuration().toMillis(), + mean = input.getInitializationDuration().toMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/CreateInitializationProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/CreateInitializationProcessReportStage.kt new file mode 100644 index 00000000..a08ba3de --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/CreateInitializationProcessReportStage.kt @@ -0,0 +1,68 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.InitializationProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToInitializationMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToInitializationMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateInitializationProcessReportStage( + private val metrics: List +) : Stage { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.initializationProcessMetric.isNotNull() && + metric.initializationProcessMetric?.median?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToInitializationMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.initializationProcessMetric.isNotNull() && + metric.initializationProcessMetric?.mean?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToInitializationMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + initializationProcessReport = InitializationProcessReport( + medianValues = medianChartPoints, + meanValues = meanChartPoints, + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/RenderInitializationProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/RenderInitializationProcessReportStage.kt new file mode 100644 index 00000000..02bee91b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/report/RenderInitializationProcessReportStage.kt @@ -0,0 +1,98 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +class RenderInitializationProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val INITIALIZATION_METRIC_TEMPLATE_ID = "%initialization-process-metric%" + private const val INITIALIZATION_METRIC_TEMPLATE_FILE_NAME = "initialization-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.initializationProcessReport.isNull()) + return input.replace(INITIALIZATION_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(INITIALIZATION_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Initialization Process is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(INITIALIZATION_METRIC_TEMPLATE_FILE_NAME) + report.initializationProcessReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + val maximumValue = Math.max(medianValues.maxValue(), meanValues.maxValue()) + val minimumValue = Math.min(medianValues.minValue(), meanValues.minValue()) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(maximumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMinValue = MathUtils.deductWithPercentage(minimumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + renderedTemplate = renderedTemplate + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricStage.kt new file mode 100644 index 00000000..e2967ce1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateInitializationProcessMetricStage( + private val updateInitializationProcessMetricUseCase: UpdateInitializationProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + initializationProcessMetric = updateInitializationProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricUseCase.kt new file mode 100644 index 00000000..ac5591b6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/initializationprocess/update/UpdateInitializationProcessMetricUseCase.kt @@ -0,0 +1,63 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.initializationprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.InitializationProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.extension.whenTrue +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateInitializationProcessMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun execute(): InitializationProcessMetric { + val medianValues = mutableListOf() + val meanValues = mutableListOf() + repo.getTemporaryMetrics().whenEach { + initializationProcessMetric.whenNotNull { + // In order to have accurate metric, don't add metric value in Median dataset if it's under 50 milliseconds. + median.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + medianValues.add(median) + } + mean.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + meanValues.add(mean) + } + } + } + + return InitializationProcessMetric( + median = MathUtils.longMedian(medianValues), + mean = MathUtils.longMean(meanValues) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricStage.kt new file mode 100644 index 00000000..d633c12f --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesBuildHeatmapMetricStage( + private val createModulesBuildHeatmapMetricUseCase: CreateModulesBuildHeatmapMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesBuildHeatmap = createModulesBuildHeatmapMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricUseCase.kt new file mode 100644 index 00000000..64876174 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/create/CreateModulesBuildHeatmapMetricUseCase.kt @@ -0,0 +1,55 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.create + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.ModulesDependencyGraph +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleBuildHeatmap +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesBuildHeatmapMetric +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.core.UseCaseNoInput + +class CreateModulesBuildHeatmapMetricUseCase( + private val modules: List, + private val modulesDependencyGraph: ModulesDependencyGraph +): UseCaseNoInput() { + + override suspend fun execute(): ModulesBuildHeatmapMetric { + val result = mutableListOf() + + modules.forEach { module -> + val dependantModulesCount = modulesDependencyGraph.dependencies.filter { it.dependency == module.path }.size + result.add( + ModuleBuildHeatmap( + path = module.path, + dependantModulesCount = dependantModulesCount + ) + ) + } + + return ModulesBuildHeatmapMetric( + modules = result + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/CreateModulesBuildHeatmapReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/CreateModulesBuildHeatmapReportStage.kt new file mode 100644 index 00000000..42810780 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/CreateModulesBuildHeatmapReportStage.kt @@ -0,0 +1,82 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.render + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleBuildHeatmap +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesBuildHeatmapReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.MathUtils + +class CreateModulesBuildHeatmapReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val temp = mutableListOf() + + metrics.last().modulesBuildHeatmap.whenNotNull { + modules.forEach { module -> + temp.add( + ModuleBuildHeatmap( + path = module.path, + dependantModulesCount = module.dependantModulesCount, + avgMedianCacheHit = getAvgMeanCacheHit(module.path), + totalBuildCount = getModuleTotalBuildCount(module.path) + ) + ) + } + } + + return input.apply { + modulesBuildHeatmapReport = ModulesBuildHeatmapReport( + modules = temp + ) + } + } + + fun getAvgMeanCacheHit(path: String): Long { + val hits = mutableListOf() + metrics.filter { + it.cacheHitMetric.isNotNull() + }.whenEach { + cacheHitMetric!!.modules.filter { moduleCacheHit -> + moduleCacheHit.path == path + }.whenEach { + hits.add(rate) + } + } + return MathUtils.longMean(hits) + } + + fun getModuleTotalBuildCount(path: String): Int { + return metrics.filter { + it.modulesBuildHeatmap.isNotNull() && it.modulesBuildHeatmap!!.modules.any { module -> module.path == path } + }.size + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/RenderModulesBuildHeatmapReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/RenderModulesBuildHeatmapReportStage.kt new file mode 100644 index 00000000..22644218 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/render/RenderModulesBuildHeatmapReportStage.kt @@ -0,0 +1,86 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +class RenderModulesBuildHeatmapReportStage( + private val report: Report +) : Stage { + + companion object { + private const val MODULES_BUILD_HEATMAP_TEMPLATE_ID = "%modules-build-heatmap-metric%" + private const val MODULES_BUILD_HEATMAP_TEMPLATE_FILE_NAME = "modules-build-heatmap-template" + } + + override suspend fun process(input: String): String { + if (report.modulesBuildHeatmapReport.isNull()) + return input.replace(MODULES_BUILD_HEATMAP_TEMPLATE_ID, getEmptyRender()) + + return input.replace(MODULES_BUILD_HEATMAP_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Build Heatmap is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(MODULES_BUILD_HEATMAP_TEMPLATE_FILE_NAME) + report.modulesBuildHeatmapReport.whenNotNull { + + val labels = mutableListOf() + val data = mutableListOf() + val colors = mutableListOf() + + modules.sortedByDescending { it.dependantModulesCount }.forEach { module -> + labels.add("${module.path} | ${module.dependantModulesCount}D") + colors.add(getColor(module.dependantModulesCount)) + data.add(MathUtils.deductWithPercentage(module.totalBuildCount.toLong(), module.avgMedianCacheHit.toInt())) + } + + val chartHeight = modules.size * 36 + + renderedTemplate = renderedTemplate + .replace("%labels%", labels.toArrayString()) + .replace("%data%", data.toString()) + .replace("%colors%", colors.toArrayString()) + .replace("%chart-height%", "${chartHeight}px") + } + return renderedTemplate + } + + fun getColor(dependantModulesCount: Int): String { + return if (dependantModulesCount > 6) "#d73027" + else if (dependantModulesCount in 5..6) "#fdae61" + else if (dependantModulesCount in 3..4) "#ffffbf" + else if (dependantModulesCount in 1..2) "#abd9e9" + else "#4575b4" + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricStage.kt new file mode 100644 index 00000000..f4508683 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesBuildHeatmapMetricStage( + private val updateModulesBuildHeatmapMetricUseCase: UpdateModulesBuildHeatmapMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesBuildHeatmap = updateModulesBuildHeatmapMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricUseCase.kt new file mode 100644 index 00000000..190c4774 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesbuildheatmap/update/UpdateModulesBuildHeatmapMetricUseCase.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesBuildHeatmapMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateModulesBuildHeatmapMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesBuildHeatmapMetric { + return ModulesBuildHeatmapMetric( + modules = repo.getTemporaryMetrics().last().modulesBuildHeatmap?.modules ?: emptyList() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricStage.kt new file mode 100644 index 00000000..dc71597e --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricStage.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesCrashCountMetricStage( + private val buildInfo: BuildInfo, + private val createModulesCrashCountMetricUseCase: CreateModulesCrashCountMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesCrashCountMetric = createModulesCrashCountMetricUseCase.execute(buildInfo) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricUseCase.kt new file mode 100644 index 00000000..d6048747 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/create/CreateModulesCrashCountMetricUseCase.kt @@ -0,0 +1,63 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesCrashCountMetric +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.whenNotNull + +class CreateModulesCrashCountMetricUseCase( + private val modules: List +) : UseCase() { + + override suspend fun execute(input: BuildInfo): ModulesCrashCountMetric { + val modules = mutableListOf() + + if (!input.isSuccessful && input.failure.isNotNull()) { + val findFirstFailedTask = input.executedTasks.sortedBy { it.startedAt }.firstOrNull { !it.isSuccessful } + + findFirstFailedTask.whenNotNull { + val module = this@CreateModulesCrashCountMetricUseCase.modules.firstOrNull { + it.path == getModule() + } + module.whenNotNull { + modules.add( + ModulesCrashCountMetric.ModuleCrash( + path = path, + totalCrashes = 1 + ) + ) + } + } + + } + + return ModulesCrashCountMetric( + modules = modules + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/CreateModulesCrashCountReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/CreateModulesCrashCountReportStage.kt new file mode 100644 index 00000000..231cc0ed --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/CreateModulesCrashCountReportStage.kt @@ -0,0 +1,65 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.render + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesCrashCountMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesCrashCountReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.whenEach + +class CreateModulesCrashCountReportStage( + private val modules: List, + private val metrics: List +): Stage { + + override suspend fun process(input: Report): Report { + val modules = mutableListOf() + + this.modules.whenEach { + val crashes = metrics + .filter { it.modulesCrashCountMetric.isNotNull() } + .sumOf { metric -> + metric.modulesCrashCountMetric!!.modules + .filter { it.path == path } + .sumOf { it.totalCrashes } + } + modules.add( + ModulesCrashCountMetric.ModuleCrash( + path = path, + totalCrashes = crashes + ) + ) + } + + return input.apply { + modulesCrashCountReport = ModulesCrashCountReport( + modules = modules + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/RenderModulesCrashCountReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/RenderModulesCrashCountReportStage.kt new file mode 100644 index 00000000..5c9a74d4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/render/RenderModulesCrashCountReportStage.kt @@ -0,0 +1,98 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesCrashCountReportStage( + private val report: Report +): Stage { + + companion object { + private const val MODULES_CRASH_COUNT_METRIC_TEMPLATE_ID = "%modules-crash-count-metric%" + private const val MODULES_CRASH_COUNT_METRIC_TEMPLATE_FILENAME = "modules-crash-count-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesCrashCountReport.isNull()) + return input.replace(MODULES_CRASH_COUNT_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(MODULES_CRASH_COUNT_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Crash Count is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(MODULES_CRASH_COUNT_METRIC_TEMPLATE_FILENAME) + report.modulesCrashCountReport.whenNotNull { + val labels = mutableListOf() + val colors = mutableListOf() + val dataset = mutableListOf() + + modules.sortedByDescending { it.totalCrashes } + .whenEach { + labels.add(path) + colors.add(getRandomColor()) + dataset.add(totalCrashes) + } + + val chartHeight = dataset.size * 36 + + renderedTemplate = renderedTemplate + .replace("%labels%", labels.toArrayString()) + .replace("%colors%", colors.toArrayString()) + .replace("%dataset%", dataset.toString()) + .replace("%chart-height%", "${chartHeight}px") + } + return renderedTemplate + } + + fun getRandomColor(): String { + val colors = listOf( + "#3b76af", + "#b3c6e5", + "#ef8536", + "#f5bd82", + "#519d3e", + "#a8dc93", + "#c53a32", + "#f19d99", + "#8d6ab8", + "#c2b1d2", + "#84584e", + "#be9e96", + "#d57ebe", + "#c2cd30" + ) + return colors[colors.indices.random() % colors.size] + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricStage.kt new file mode 100644 index 00000000..b1e16855 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesCrashCountMetricStage( + private val updateModulesCrashCountMetricUseCase: UpdateModulesCrashCountMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesCrashCountMetric = updateModulesCrashCountMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricUseCase.kt new file mode 100644 index 00000000..ee694d7b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulescrashcount/update/UpdateModulesCrashCountMetricUseCase.kt @@ -0,0 +1,61 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulescrashcount.update + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesCrashCountMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.whenEach + +class UpdateModulesCrashCountMetricUseCase( + private val repo: DatabaseRepository, + private val modules: List +): UseCaseNoInput() { + + override suspend fun execute(): ModulesCrashCountMetric { + val modules = mutableListOf() + + this.modules.whenEach { + val crashes = repo.getTemporaryMetrics() + .filter { it.modulesCrashCountMetric.isNotNull() } + .sumOf { metric -> + metric.modulesCrashCountMetric!!.modules + .filter { it.path == path } + .sumOf { it.totalCrashes } + } + modules.add( + ModulesCrashCountMetric.ModuleCrash( + path = path, + totalCrashes = crashes + ) + ) + } + + return ModulesCrashCountMetric( + modules = modules + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricStage.kt new file mode 100644 index 00000000..a168bf57 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesDependencyGraphMetricStage( + private val createModulesDependencyGraphMetricUseCase: CreateModulesDependencyGraphMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesDependencyGraphMetric = createModulesDependencyGraphMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricUseCase.kt new file mode 100644 index 00000000..584cdc1d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/create/CreateModulesDependencyGraphMetricUseCase.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.create + +import io.github.janbarari.gradle.analytics.domain.model.ModulesDependencyGraph +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesDependencyGraphMetric +import io.github.janbarari.gradle.core.UseCaseNoInput + +class CreateModulesDependencyGraphMetricUseCase( + private val modulesDependencyGraph: ModulesDependencyGraph +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesDependencyGraphMetric { + return ModulesDependencyGraphMetric( + dependencies = modulesDependencyGraph.dependencies + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/CreateModulesDependencyGraphReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/CreateModulesDependencyGraphReportStage.kt new file mode 100644 index 00000000..099fdc36 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/CreateModulesDependencyGraphReportStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesDependencyGraphReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage + +class CreateModulesDependencyGraphReportStage( + private val metrics: List +): Stage { + + override suspend fun process(input: Report): Report { + return input.apply { + modulesDependencyGraphReport = ModulesDependencyGraphReport( + dependencies = metrics.last().modulesDependencyGraphMetric?.dependencies ?: emptyList() + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/RenderModulesDependencyGraphReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/RenderModulesDependencyGraphReportStage.kt new file mode 100644 index 00000000..6cfdedae --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/report/RenderModulesDependencyGraphReportStage.kt @@ -0,0 +1,87 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesDependencyGraphReportStage( + private val report: Report +): Stage { + + companion object { + private const val MODULES_DEPENDENCY_GRAPH_METRIC_TEMPLATE_ID = "%modules-dependency-graph-metric%" + private const val MODULES_DEPENDENCY_GRAPH_METRIC_TEMPLATE_FILE_NAME = "modules-dependency-graph-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesDependencyGraphReport.isNull()) { + return input.replace(MODULES_DEPENDENCY_GRAPH_METRIC_TEMPLATE_ID, getEmptyRender()) + } + + return input.replace(MODULES_DEPENDENCY_GRAPH_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Dependency Graph is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(MODULES_DEPENDENCY_GRAPH_METRIC_TEMPLATE_FILE_NAME) + report.modulesDependencyGraphReport.whenNotNull { + val mermaidCommands = buildString { + appendLine() + dependencies.whenEach { + val type = when(configuration) { + "api" -> "api" + "implementation" -> "impl" + else -> configuration + } + + val pathColor = dependencies.filter { it.dependency == dependency }.size + var heatmapColor = ":::blue" + if (pathColor in 3 .. 4) { + heatmapColor = ":::yellow" + } else if (pathColor in 5 .. 6) { + heatmapColor = ":::orange" + } else if (pathColor > 6) { + heatmapColor = ":::red" + } + + append("\t$path ---> |$type| $dependency$heatmapColor") + appendLine() + } + + } + + renderedTemplate = renderedTemplate + .replace("%mermaid-commands%", mermaidCommands) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricStage.kt new file mode 100644 index 00000000..9b3c82e7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesDependencyGraphMetricStage( + private val updateModulesDependencyGraphMetricUseCase: UpdateModulesDependencyGraphMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesDependencyGraphMetric = updateModulesDependencyGraphMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricUseCase.kt new file mode 100644 index 00000000..8dde2dd1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesdependencygraph/update/UpdateModulesDependencyGraphMetricUseCase.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesDependencyGraphMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateModulesDependencyGraphMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesDependencyGraphMetric { + return ModulesDependencyGraphMetric( + dependencies = repo.getTemporaryMetrics().last().modulesDependencyGraphMetric?.dependencies ?: emptyList() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricStage.kt new file mode 100644 index 00000000..23035039 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesExecutionProcessMetricStage( + private val buildInfo: BuildInfo, + private val createModulesExecutionProcessMetricUseCase: CreateModulesExecutionProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + modulesExecutionProcessMetric = createModulesExecutionProcessMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricUseCase.kt new file mode 100644 index 00000000..3fc8fede --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/create/CreateModulesExecutionProcessMetricUseCase.kt @@ -0,0 +1,69 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleExecutionProcess +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesExecutionProcessMetric +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach + +class CreateModulesExecutionProcessMetricUseCase( + private val modules: List +): UseCase() { + + override suspend fun execute(input: BuildInfo): ModulesExecutionProcessMetric { + val moduleExecutionProcesses = mutableListOf() + + modules.whenEach { + val tasks = input.executedTasks.filter { it.path.startsWith(path) } + + val moduleParallelExecInMillis = tasks.sumOf { it.getDurationInMillis() } + + val moduleNonParallelExecInMillis = input.calculateNonParallelExecutionInMillis(tasks) + + val moduleParallelRate = (moduleParallelExecInMillis - moduleNonParallelExecInMillis) + .toPercentageOf(moduleNonParallelExecInMillis) + + val overallDuration = input.getExecutionDuration().toMillis() + val moduleCoverageRate = moduleNonParallelExecInMillis.toPercentageOf(overallDuration) + + moduleExecutionProcesses.add( + ModuleExecutionProcess( + path = path, + medianExecInMillis = moduleNonParallelExecInMillis, + medianParallelExecInMillis = moduleParallelExecInMillis, + parallelRate = moduleParallelRate, + coverageRate = moduleCoverageRate + ) + ) + } + + return ModulesExecutionProcessMetric( + modules = moduleExecutionProcesses + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/CreateModulesExecutionProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/CreateModulesExecutionProcessReportStage.kt new file mode 100644 index 00000000..2c429aa4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/CreateModulesExecutionProcessReportStage.kt @@ -0,0 +1,116 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleExecutionProcess +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesExecutionProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.diffPercentageOf +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.round +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.MathUtils + +class CreateModulesExecutionProcessReportStage( + private val modules: List, + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val temp = modules.map { module -> + var firstAvgMedianDuration: Long? = null + var lastAvgMedianDuration: Long? = null + var diffRate: Float? = null + + val avgMedianExecTimespanPoints = mutableListOf() + val avgMedianExecs = mutableListOf() + val avgMedianParallelExecs = mutableListOf() + val avgMedianParallelRates = mutableListOf() + val avgMedianCoverageRates = mutableListOf() + + metrics.firstOrNull { metric -> + metric.modulesExecutionProcessMetric.isNotNull() + }.whenNotNull { + modulesExecutionProcessMetric!! + .modules + .find { it.path == module.path } + .whenNotNull { + firstAvgMedianDuration = medianExecInMillis + } + } + + metrics.lastOrNull { metric -> + metric.modulesExecutionProcessMetric.isNotNull() + }.whenNotNull { + modulesExecutionProcessMetric!! + .modules + .find { it.path == module.path } + .whenNotNull { + lastAvgMedianDuration = medianExecInMillis + } + } + + if (firstAvgMedianDuration.isNotNull() && lastAvgMedianDuration.isNotNull()) + diffRate = firstAvgMedianDuration!!.diffPercentageOf(lastAvgMedianDuration!!) + + metrics.filter { metric -> + metric.modulesExecutionProcessMetric.isNotNull() + }.forEach { metric -> + metric.modulesExecutionProcessMetric!! + .modules + .find { it.path == module.path } + .whenNotNull { + avgMedianExecTimespanPoints.add( + TimespanPoint( + value = medianExecInMillis, + from = metric.createdAt + ) + ) + avgMedianExecs.add(medianExecInMillis) + avgMedianParallelExecs.add(medianParallelExecInMillis) + avgMedianParallelRates.add(parallelRate) + avgMedianCoverageRates.add(coverageRate) + } + } + + ModuleExecutionProcess( + path = module.path, + avgMedianExecInMillis = MathUtils.longMedian(avgMedianExecs), + avgMedianParallelExecInMillis = MathUtils.longMedian(avgMedianParallelExecs), + avgMedianParallelRate = MathUtils.floatMedian(avgMedianParallelRates).round(), + avgMedianCoverageRate = MathUtils.floatMedian(avgMedianCoverageRates).round(), + avgMedianExecs = avgMedianExecTimespanPoints, + diffRate = diffRate + ) + } + + return input.apply { + modulesExecutionProcessReport = ModulesExecutionProcessReport(modules = temp) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/RenderModulesExecutionProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/RenderModulesExecutionProcessReportStage.kt new file mode 100644 index 00000000..18bf6bd6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/report/RenderModulesExecutionProcessReportStage.kt @@ -0,0 +1,133 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerThanZero +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.isZero +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.millisToSeconds +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates html render for [io.github.janbarari.gradle.analytics.domain.model.report.ModulesExecutionProcessReport]. + */ +class RenderModulesExecutionProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val MODULES_EXECUTION_PROCESS_METRIC_TEMPLATE_ID = "%modules-execution-process-metric%" + private const val MODULES_EXECUTION_PROCESS_METRIC_FILE_NAME = "modules-execution-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesExecutionProcessReport.isNull()) { + return input.replace(MODULES_EXECUTION_PROCESS_METRIC_TEMPLATE_ID, getEmptyRender()) + } + + return input.replace(MODULES_EXECUTION_PROCESS_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(MODULES_EXECUTION_PROCESS_METRIC_FILE_NAME) + report.modulesExecutionProcessReport.whenNotNull { + val min = (modules.minOfOrNull { it.avgMedianExecInMillis } ?: 0L).millisToSeconds() + val max = (modules.maxOfOrNull { it.avgMedianExecInMillis } ?: 0L).millisToSeconds() + + val chartSuggestedMinValue = MathUtils.deductWithPercentage(min, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(max, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + val chartLabels: String = modules.firstOrNull() + ?.avgMedianExecs + ?.minimize(CHART_MAX_COLUMNS) + ?.mapToChartPoints() + ?.map { it.description } + ?.toArrayString() + ?: "[]" + + val chartDatasets = buildString { + modules.whenEach { + append("{") + append("label: \"$path\",") + append("fill: false,") + append("borderColor: getColor(),") + append("backgroundColor: shadeColor(getColor(), 25),") + append("pointRadius: 0,") + append("data: ${avgMedianExecs.map { it.value.millisToSeconds() }.toIntList()},") + append("cubicInterpolationMode: 'monotone',") + append("tension: 0.4,") + append("hidden: false") + append("}") + append(",") + } + } + + val tableData = buildString { + modules.forEachIndexed { i, module -> + append("") + append("${i+1}") + append("${module.path}") + append("${module.avgMedianExecInMillis.millisToSeconds()}s") + append("${module.avgMedianParallelExecInMillis.millisToSeconds()}s") + append("${module.avgMedianParallelRate}%") + append("${module.avgMedianCoverageRate}%") + + if (module.diffRate.isNull()) + append("Unknown") + else if (module.diffRate!!.isZero()) + append("Equals") + else if (module.diffRate.isBiggerThanZero()) + append("+${module.diffRate}%") + else + append("-${module.diffRate}%") + + append("") + } + } + + renderedTemplate = renderedTemplate + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%chart-labels%", chartLabels) + .replace("%chart-datasets%", chartDatasets) + .replace("%table-data%", tableData) + } + return renderedTemplate + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Execution Process is not available!") + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricStage.kt new file mode 100644 index 00000000..96b0da3a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesExecutionProcessMetricStage( + private val updateModulesExecutionProcessMetricUseCase: UpdateModulesExecutionProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesExecutionProcessMetric = updateModulesExecutionProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricUseCase.kt new file mode 100644 index 00000000..323017dd --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesexecutionprocess/update/UpdateModulesExecutionProcessMetricUseCase.kt @@ -0,0 +1,76 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleExecutionProcess +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesExecutionProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateModulesExecutionProcessMetricUseCase( + private val repo: DatabaseRepository, + private val modules: List +): UseCaseNoInput() { + + override suspend fun execute(): ModulesExecutionProcessMetric { + val modulesMedianExecutionProcess = modules.map { + calculateMedianModuleExecutionProcess(modulePath = it.path, metrics = repo.getTemporaryMetrics()) + } + + return ModulesExecutionProcessMetric( + modules = modulesMedianExecutionProcess + ) + } + + private fun calculateMedianModuleExecutionProcess(modulePath: String, metrics: List): ModuleExecutionProcess { + val medianExecs = mutableListOf() + val medianParallelExecs = mutableListOf() + val medianParallelRates = mutableListOf() + val medianCoverageRates = mutableListOf() + + metrics.whenEach { + modulesExecutionProcessMetric.whenNotNull { + modules.find { it.path == modulePath }.whenNotNull { + medianExecs.add(medianExecInMillis) + medianParallelExecs.add(medianParallelExecInMillis) + medianParallelRates.add(parallelRate) + medianCoverageRates.add(coverageRate) + } + } + } + + return ModuleExecutionProcess( + path = modulePath, + medianExecInMillis = MathUtils.longMedian(medianExecs), + medianParallelExecInMillis = MathUtils.longMedian(medianParallelExecs), + parallelRate = MathUtils.floatMedian(medianParallelRates), + coverageRate = MathUtils.floatMedian(medianCoverageRates) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricStage.kt new file mode 100644 index 00000000..374e8e20 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesMethodCountMetricStage( + private val createModulesMethodCountMetricUseCase: CreateModulesMethodCountMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesMethodCountMetric = createModulesMethodCountMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricUseCase.kt new file mode 100644 index 00000000..c04ede2a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/create/CreateModulesMethodCountMetricUseCase.kt @@ -0,0 +1,93 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.create + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleMethodCount +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesMethodCountMetric +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isJavaFile +import io.github.janbarari.gradle.extension.isKotlinFile +import io.github.janbarari.gradle.extension.readText +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.utils.FileUtils +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.withContext +import java.util.* + +class CreateModulesMethodCountMetricUseCase( + private val modules: List +) : UseCaseNoInput() { + + private val commentRegex = """(//.*)|(\/\*[^/*]*(?:(?!\/\*|\*\/)[/*][^/*]*)*\*\/)""".toRegex() + + private val javaModifiers = "public|private|protected|static|final|native|synchronized|abstract|transient|" + private val javaMethodRegex = """($javaModifiers)+[\w\<\>\[\]\,\s]*\s*(\w+) *\([^\)]*\) *(\{|[^;])""".toRegex() + + private val kotlinMethodRegex = """((fun)+[\\${'$'}\w\<\>\w\s\[\]]*\s+\w.*\([^\)]*\) *(.*) *(\{|\=))""".toRegex() + private val kotlinConstructorRegex = + """(.*class[\\${'$'}\w\<\>\w\s\[\]]*\s+\w.*\([^\)]*\)|.*constructor.*\([^\)]*\))|((\sinit) *(\{|\=))""".toRegex() + + override suspend fun execute(): ModulesMethodCountMetric { + val modulesProperties = Collections.synchronizedList(mutableListOf()) + withContext(dispatcher) { + val defers = mutableListOf>() + modules.whenEach { + defers.add(async { + modulesProperties.add( + ModuleMethodCount( + path = path, + value = getModuleMethodCount(absoluteDir) + ) + ) + }) + } + defers.awaitAll() + } + return ModulesMethodCountMetric(modules = modulesProperties) + } + + private fun getModuleMethodCount(directory: String): Int { + val sourcePaths = FileUtils.getModuleSources(directory) + var result = 0 + + sourcePaths.whenEach { + if (isKotlinFile()) { + val content = readText() + val removedComments = content.replace(commentRegex, "") + result += kotlinMethodRegex.findAll(removedComments).count() + result += kotlinConstructorRegex.findAll(removedComments).count() + } + if (isJavaFile()) { + val content = readText() + val removedComments = content.replace(commentRegex, "") + result += javaMethodRegex.findAll(removedComments).count() + } + } + + return result + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/CreateModulesMethodCountReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/CreateModulesMethodCountReportStage.kt new file mode 100644 index 00000000..266488bb --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/CreateModulesMethodCountReportStage.kt @@ -0,0 +1,115 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleMethodCount +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesMethodCountMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesMethodCountReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.diffPercentageOf +import io.github.janbarari.gradle.extension.hasMultipleItems +import io.github.janbarari.gradle.extension.hasSingleItem +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach + +class CreateModulesMethodCountReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val metrics = metrics.filter { + it.modulesMethodCountMetric.isNotNull() + }.map { + it.modulesMethodCountMetric!! + } + + if (metrics.hasSingleItem()) { + return input.apply { + modulesMethodCountReport = generateSingleItemReport(metrics.single()) + } + } + + if (metrics.hasMultipleItems()) { + return input.apply { + modulesMethodCountReport = generateMultipleItemsReport(metrics) + } + } + + return input + } + + fun generateSingleItemReport(metric: ModulesMethodCountMetric): ModulesMethodCountReport { + val values = mutableListOf() + + val totalSourceCount = metric.modules.sumOf { it.value } + + metric.modules.whenEach { + values.add( + ModuleMethodCount( + path = path, + value = value, + coverageRate = value.toPercentageOf(totalSourceCount), + diffRate = null // The ratio does not exist when there is only one item + ) + ) + } + + return ModulesMethodCountReport( + values = values.sortedByDescending { it.value }, + totalMethodCount = totalSourceCount, + totalDiffRate = null // The ratio does not exist when there is only one item + ) + } + + fun generateMultipleItemsReport(metrics: List): ModulesMethodCountReport { + val firstTotalSourceCount = metrics.first().modules.sumOf { it.value } + val lastTotalSourceCount = metrics.last().modules.sumOf { it.value } + val totalDiffRatio = firstTotalSourceCount.diffPercentageOf(lastTotalSourceCount) + + val values = mutableListOf() + metrics.last().modules.whenEach { + values.add( + ModuleMethodCount( + path = path, + value = value, + coverageRate = value.toPercentageOf(lastTotalSourceCount), + diffRate = calculateModuleDiffRatio(metrics, path, value) + ) + ) + } + + return ModulesMethodCountReport( + values = values.sortedByDescending { it.value }, + totalMethodCount = lastTotalSourceCount, + totalDiffRate = totalDiffRatio + ) + } + + fun calculateModuleDiffRatio(metrics: List, path: String, value: Int): Float? { + return metrics.first().modules.find { it.path == path }?.value?.diffPercentageOf(value) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/RenderModulesMethodCountStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/RenderModulesMethodCountStage.kt new file mode 100644 index 00000000..ff6098ad --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/report/RenderModulesMethodCountStage.kt @@ -0,0 +1,107 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesMethodCountStage( + private val report: Report +) : Stage { + + companion object { + private const val MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID = "%modules-method-count-metric%" + private const val MODULES_METHOD_COUNT_METRIC_TEMPLATE_FILE_NAME = "modules-method-count-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesMethodCountReport.isNull()) + return input.replace(MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Method Count is not available!") + } + + fun getMetricRender(): String { + val totalMethodCount = report.modulesMethodCountReport?.totalMethodCount ?: 0 + + var totalDiffRatioRender = "-" + report.modulesMethodCountReport.whenNotNull { + totalDiffRate.whenNotNull { + totalDiffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0) { + "-${this}%" + } else { + "Equals" + } + } + } + + val tableData = buildString { + report.modulesMethodCountReport?.values?.forEachIndexed { index, it -> + var diffRatioRender = "-" + it.diffRate.whenNotNull { + diffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0) { + "-${this}%" + } else { + "Equals" + } + } + append( + """ + + ${index + 1} + ${it.path} + ${it.value} + ${it.coverageRate}% + $diffRatioRender + + """.trimIndent() + ) + } + } + + val moduleLabels = report.modulesMethodCountReport?.values?.map { "\"${it.path}\"" } + val moduleValues = report.modulesMethodCountReport?.values?.map { it.value } + + var renderedTemplate = HtmlUtils.getTemplate(MODULES_METHOD_COUNT_METRIC_TEMPLATE_FILE_NAME) + renderedTemplate = renderedTemplate + .replace("%table-data%", tableData) + .replace("%total-method-count%", totalMethodCount.toString()) + .replace("%total-diff-rate%", totalDiffRatioRender) + .replace("%module-labels%", moduleLabels.toString()) + .replace("%module-values%", moduleValues.toString()) + + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricStage.kt new file mode 100644 index 00000000..5654f929 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesMethodCountMetricStage( + private val updateModulesMethodCountMetricUseCase: UpdateModulesMethodCountMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesMethodCountMetric = updateModulesMethodCountMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricUseCase.kt new file mode 100644 index 00000000..7bbbfa2e --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesmethodcount/update/UpdateModulesMethodCountMetricUseCase.kt @@ -0,0 +1,37 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesmethodcount.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesMethodCountMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateModulesMethodCountMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesMethodCountMetric { + return repo.getTemporaryMetrics().last().modulesMethodCountMetric!! + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricStage.kt new file mode 100644 index 00000000..a5e62d74 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesSourceCountMetricStage( + private val createModulesSourceCountMetricUseCase: CreateModulesSourceCountMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesSourceCountMetric = createModulesSourceCountMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricUseCase.kt new file mode 100644 index 00000000..684f28b7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/create/CreateModulesSourceCountMetricUseCase.kt @@ -0,0 +1,60 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.create + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleSourceCount +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceCountMetric +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.utils.FileUtils +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.withContext +import java.util.* + +class CreateModulesSourceCountMetricUseCase( + private val modules: List +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesSourceCountMetric { + val result = Collections.synchronizedList(mutableListOf()) + withContext(dispatcher) { + val defers = mutableListOf>() + modules.whenEach { + defers.add(async { + result.add( + ModuleSourceCount( + path = path, + value = FileUtils.getModuleSources(absoluteDir).size + ) + ) + }) + } + defers.awaitAll() + } + return ModulesSourceCountMetric(modules = result) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/CreateModulesSourceCountReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/CreateModulesSourceCountReportStage.kt new file mode 100644 index 00000000..060153b7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/CreateModulesSourceCountReportStage.kt @@ -0,0 +1,114 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModuleSourceCount +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceCountMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesSourceCountReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.hasMultipleItems +import io.github.janbarari.gradle.extension.hasSingleItem +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.diffPercentageOf +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach + +class CreateModulesSourceCountReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val metrics = metrics.filter { + it.modulesSourceCountMetric.isNotNull() + }.map { + it.modulesSourceCountMetric!! + } + + if (metrics.hasSingleItem()) { + return input.apply { + modulesSourceCountReport = generateSingleItemReport(metrics.single()) + } + } + + if (metrics.hasMultipleItems()) { + return input.apply { + modulesSourceCountReport = generateMultipleItemsReport(metrics) + } + } + + return input + } + + fun generateSingleItemReport(metric: ModulesSourceCountMetric): ModulesSourceCountReport { + val values = mutableListOf() + val totalSourceCount = metric.modules.sumOf { it.value } + + metric.modules.whenEach { + values.add( + ModuleSourceCount( + path = path, + value = value, + coverageRate = value.toPercentageOf(totalSourceCount), + diffRate = null // The ratio does not exist when there is only one item + ) + ) + } + + return ModulesSourceCountReport( + values = values.sortedByDescending { it.value }, + totalSourceCount = totalSourceCount, + totalDiffRate = null // The ratio does not exist when there is only one item + ) + } + + fun generateMultipleItemsReport(metrics: List): ModulesSourceCountReport { + val firstTotalSourceCount = metrics.first().modules.sumOf { it.value } + val lastTotalSourceCount = metrics.last().modules.sumOf { it.value } + val totalDiffRatio = firstTotalSourceCount.diffPercentageOf(lastTotalSourceCount) + + val values = mutableListOf() + metrics.last().modules.whenEach { + values.add( + ModuleSourceCount( + path = path, + value = value, + coverageRate = value.toPercentageOf(lastTotalSourceCount), + diffRate = calculateModuleDiffRatio(metrics, path, value) + ) + ) + } + + return ModulesSourceCountReport( + values = values.sortedByDescending { it.value }, + totalSourceCount = lastTotalSourceCount, + totalDiffRate = totalDiffRatio + ) + } + + fun calculateModuleDiffRatio(metrics: List, path: String, value: Int): Float? { + return metrics.first().modules.find { it.path == path }?.value?.diffPercentageOf(value) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/RenderModulesSourceCountStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/RenderModulesSourceCountStage.kt new file mode 100644 index 00000000..582a6c76 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/report/RenderModulesSourceCountStage.kt @@ -0,0 +1,107 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesSourceCountStage( + private val report: Report +) : Stage { + + companion object { + private const val MODULES_SOURCE_COUNT_METRIC_TEMPLATE_ID = "%modules-source-count-metric%" + private const val MODULES_SOURCE_COUNT_METRIC_TEMPLATE_FILE_NAME = "modules-source-count-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesSourceCountReport.isNull()) + return input.replace(MODULES_SOURCE_COUNT_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(MODULES_SOURCE_COUNT_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Source Count is not available!") + } + + fun getMetricRender(): String { + val totalSourceCount = report.modulesSourceCountReport?.totalSourceCount ?: 0 + + var totalDiffRatioRender = "-" + report.modulesSourceCountReport.whenNotNull { + totalDiffRate.whenNotNull { + totalDiffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0) { + "-${this}%" + } else { + "Equals" + } + } + } + + val tableData = buildString { + report.modulesSourceCountReport?.values?.forEachIndexed { index, it -> + var diffRatioRender = "-" + it.diffRate.whenNotNull { + diffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0){ + "-${this}%" + } else { + "Equals" + } + } + append( + """ + + ${index + 1} + ${it.path} + ${it.value} + ${it.coverageRate}% + $diffRatioRender + + """.trimIndent() + ) + } + } + + val moduleLabels = report.modulesSourceCountReport?.values?.map { "\"${it.path}\"" } + val moduleValues = report.modulesSourceCountReport?.values?.map { it.value } + + var renderedTemplate = HtmlUtils.getTemplate(MODULES_SOURCE_COUNT_METRIC_TEMPLATE_FILE_NAME) + renderedTemplate = renderedTemplate + .replace("%table-data%", tableData) + .replace("%total-source-count%", totalSourceCount.toString()) + .replace("%total-diff-rate%", totalDiffRatioRender) + .replace("%module-labels%", moduleLabels.toString()) + .replace("%module-values%", moduleValues.toString()) + + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricStage.kt new file mode 100644 index 00000000..b283b157 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesSourceCountMetricStage( + private val updateModulesSourceCountMetricUseCase: UpdateModulesSourceCountMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesSourceCountMetric = updateModulesSourceCountMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricUseCase.kt new file mode 100644 index 00000000..6a9a89d9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulesourcecount/update/UpdateModulesSourceCountMetricUseCase.kt @@ -0,0 +1,37 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulesourcecount.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceCountMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateModulesSourceCountMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesSourceCountMetric { + return repo.getTemporaryMetrics().last().modulesSourceCountMetric!! + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricStage.kt new file mode 100644 index 00000000..b89b4d27 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.create + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesSourceSizeMetricStage( + private val createModulesSourceSizeMetricUseCase: CreateModulesSourceSizeMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesSourceSizeMetric = createModulesSourceSizeMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricUseCase.kt new file mode 100644 index 00000000..d57c22f0 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/create/CreateModulesSourceSizeMetricUseCase.kt @@ -0,0 +1,65 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.create + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceSizeMetric +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.utils.FileUtils +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.withContext +import java.util.* + +class CreateModulesSourceSizeMetricUseCase( + private val modules: List +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesSourceSizeMetric { + val modulesProperties = Collections.synchronizedList(mutableListOf()) + withContext(dispatcher) { + val defers = mutableListOf>() + modules.whenEach { + defers.add(async { + modulesProperties.add( + ModulesSourceSizeMetric.ModuleSourceSize( + path = path, + sizeInKb = getModuleSourceSizeInKb(absoluteDir) + ) + ) + }) + } + defers.awaitAll() + } + return ModulesSourceSizeMetric(modules = modulesProperties) + } + + private fun getModuleSourceSizeInKb(directory: String): Long { + return FileUtils + .getModuleSources(directory) + .sumOf { it.toFile().length() / 1024L } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/CreateModulesSourceSizeReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/CreateModulesSourceSizeReportStage.kt new file mode 100644 index 00000000..e3a392ba --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/CreateModulesSourceSizeReportStage.kt @@ -0,0 +1,114 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceSizeMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesSourceSizeReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.diffPercentageOf +import io.github.janbarari.gradle.extension.hasMultipleItems +import io.github.janbarari.gradle.extension.hasSingleItem +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach + +class CreateModulesSourceSizeReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val metrics = metrics.filter { + it.modulesSourceSizeMetric.isNotNull() + }.map { + it.modulesSourceSizeMetric!! + } + + if (metrics.hasSingleItem()) { + return input.apply { + modulesSourceSizeReport = generateSingleItemReport(metrics.single()) + } + } + + if (metrics.hasMultipleItems()) { + return input.apply { + modulesSourceSizeReport = generateMultipleItemsReport(metrics) + } + } + + return input + } + + fun generateSingleItemReport(metric: ModulesSourceSizeMetric): ModulesSourceSizeReport { + val values = mutableListOf() + + val totalSourceCount = metric.modules.sumOf { it.sizeInKb } + + metric.modules.whenEach { + values.add( + ModulesSourceSizeReport.ModuleSourceSize( + path = path, + sizeInKb = sizeInKb, + coverageRate = sizeInKb.toPercentageOf(totalSourceCount), + diffRate = null // The ratio does not exist when there is only one item + ) + ) + } + + return ModulesSourceSizeReport( + values = values.sortedByDescending { it.sizeInKb }, + totalSourceSizeInKb = totalSourceCount, + totalDiffRate = null // The ratio does not exist when there is only one item + ) + } + + fun generateMultipleItemsReport(metrics: List): ModulesSourceSizeReport { + val firstTotalSourceSize = metrics.first().modules.sumOf { it.sizeInKb } + val lastTotalSourceSize = metrics.last().modules.sumOf { it.sizeInKb } + val totalDiffRate = firstTotalSourceSize.diffPercentageOf(lastTotalSourceSize) + + val values = mutableListOf() + metrics.last().modules.whenEach { + values.add( + ModulesSourceSizeReport.ModuleSourceSize( + path = path, + sizeInKb = sizeInKb, + coverageRate = sizeInKb.toPercentageOf(lastTotalSourceSize), + diffRate = calculateModuleDiffRate(metrics, path, sizeInKb) + ) + ) + } + + return ModulesSourceSizeReport( + values = values.sortedByDescending { it.sizeInKb }, + totalSourceSizeInKb = lastTotalSourceSize, + totalDiffRate = totalDiffRate + ) + } + + fun calculateModuleDiffRate(metrics: List, path: String, value: Long): Float? { + return metrics.first().modules.find { it.path == path }?.sizeInKb?.diffPercentageOf(value) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/RenderModulesSourceSizeReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/RenderModulesSourceSizeReportStage.kt new file mode 100644 index 00000000..0d0f19e9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/report/RenderModulesSourceSizeReportStage.kt @@ -0,0 +1,107 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesSourceSizeReportStage( + private val report: Report +) : Stage { + + companion object { + private const val MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID = "%modules-source-size-metric%" + private const val MODULES_METHOD_COUNT_METRIC_TEMPLATE_FILE_NAME = "modules-source-size-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesSourceSizeReport.isNull()) + return input.replace(MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(MODULES_METHOD_COUNT_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Source Size is not available!") + } + + fun getMetricRender(): String { + val totalSourceSizeByKb = report.modulesSourceSizeReport?.totalSourceSizeInKb ?: 0 + + var totalDiffRatioRender = "-" + report.modulesSourceSizeReport.whenNotNull { + totalDiffRate.whenNotNull { + totalDiffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0) { + "-${this}%" + } else { + "Equals" + } + } + } + + val tableData = buildString { + report.modulesSourceSizeReport?.values?.forEachIndexed { index, it -> + var diffRatioRender = "-" + it.diffRate.whenNotNull { + diffRatioRender = if (this > 0) { + "+${this}%" + } else if (this < 0) { + "-${this}%" + } else { + "Equals" + } + } + append( + """ + + ${index + 1} + ${it.path} + ${it.sizeInKb}kb + ${it.coverageRate}% + $diffRatioRender + + """.trimIndent() + ) + } + } + + val moduleLabels = report.modulesSourceSizeReport?.values?.map { "\"${it.path}\"" } + val moduleValues = report.modulesSourceSizeReport?.values?.map { it.sizeInKb } + + var renderedTemplate = HtmlUtils.getTemplate(MODULES_METHOD_COUNT_METRIC_TEMPLATE_FILE_NAME) + renderedTemplate = renderedTemplate + .replace("%table-data%", tableData) + .replace("%total-source-size%", totalSourceSizeByKb.toString()) + .replace("%total-diff-rate%", totalDiffRatioRender) + .replace("%module-labels%", moduleLabels.toString()) + .replace("%module-values%", moduleValues.toString()) + + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricStage.kt new file mode 100644 index 00000000..edd57f62 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateModulesSourceSizeMetricStage( + private val updateModulesSourceSizeMetricUseCase: UpdateModulesSourceSizeMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + modulesSourceSizeMetric = updateModulesSourceSizeMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricUseCase.kt new file mode 100644 index 00000000..f221ad4d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulessourcesize/update/UpdateModulesSourceSizeMetricUseCase.kt @@ -0,0 +1,37 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulessourcesize.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesSourceSizeMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput + +class UpdateModulesSourceSizeMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): ModulesSourceSizeMetric { + return repo.getTemporaryMetrics().last().modulesSourceSizeMetric!! + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricStage.kt new file mode 100644 index 00000000..357a31ca --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulestimeline.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateModulesTimelineMetricStage( + private val buildInfo: BuildInfo, + private val createModulesTimelineMetricUseCase: CreateModulesTimelineMetricUseCase +) : Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + modulesTimelineMetric = createModulesTimelineMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricUseCase.kt new file mode 100644 index 00000000..d372c274 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/create/CreateModulesTimelineMetricUseCase.kt @@ -0,0 +1,62 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulestimeline.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.ModuleTimeline +import io.github.janbarari.gradle.analytics.domain.model.metric.ModulesTimelineMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateModulesTimelineMetricUseCase( + private val modules: List +): UseCase() { + + override suspend fun execute(input: BuildInfo): ModulesTimelineMetric { + val start = input.executedTasks.minOfOrNull { it.startedAt } ?: 0 + val end = input.executedTasks.maxOfOrNull { it.finishedAt } ?: 0 + + val result = modules.map { module -> + ModuleTimeline( + path = module.path, + timelines = input.executedTasks.filter { it.path.startsWith(module.path) } + .map { + ModuleTimeline.Timeline( + path = it.path, + start = it.startedAt, + end = it.finishedAt, + isCached = it.isFromCache || it.isUpToDate + ) + } + ) + } + + return ModulesTimelineMetric( + modules = result, + start = start, + end = end, + createdAt = System.currentTimeMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/CreateModulesTimelineReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/CreateModulesTimelineReportStage.kt new file mode 100644 index 00000000..aa774c51 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/CreateModulesTimelineReportStage.kt @@ -0,0 +1,50 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulestimeline.render + +import io.github.janbarari.gradle.analytics.domain.model.report.ModulesTimelineReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.analytics.domain.usecase.GetModulesTimelineUseCase +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.whenNotNull + +class CreateModulesTimelineReportStage( + private val branch: String, + private val getModulesTimelineUseCase: GetModulesTimelineUseCase +) : Stage { + + override suspend fun process(input: Report): Report { + val temp = getModulesTimelineUseCase.execute(branch) + return input.apply { + temp.whenNotNull { + modulesTimelineReport = ModulesTimelineReport( + start = start, + end = end, + createdAt = createdAt, + modules = modules + ) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/RenderModulesTimelineReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/RenderModulesTimelineReportStage.kt new file mode 100644 index 00000000..6c87afee --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/modulestimeline/render/RenderModulesTimelineReportStage.kt @@ -0,0 +1,126 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.modulestimeline.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.DateTimeUtils +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderModulesTimelineReportStage( + private val report: Report +) : Stage { + + companion object { + private const val MODULES_TIMELINE_METRIC_TEMPLATE_ID = "%modules-execution-timeline-metric%" + private const val MODULES_TIMELINE_METRIC_TEMPLATE_FILE_NAME = "modules-timeline-metric-template" + } + + override suspend fun process(input: String): String { + if (report.modulesTimelineReport.isNull()) { + return input.replace(MODULES_TIMELINE_METRIC_TEMPLATE_ID, getEmptyRender()) + } + + return input.replace(MODULES_TIMELINE_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Modules Execution Timeline is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(MODULES_TIMELINE_METRIC_TEMPLATE_FILE_NAME) + + var beginning = 0L + var ending = 0L + var createdAt = 0L + + val result = buildString { + append("[") + appendLine() + report.modulesTimelineReport.whenNotNull { + createdAt = this.createdAt + beginning = start + ending = end + modules.forEachIndexed { index, module -> + append( + buildString { + append("{") + appendLine() + append("label: \"${module.path}\",") + appendLine() + append("times: [") + appendLine() + val color = getColor(index) + module.timelines.forEach { timeline -> + if (timeline.isCached) { + append("{ \"color\": \"#999999\", \"starting_time\": ${ + timeline.start}, \"ending_time\": ${timeline.end} },") + } else { + append("{ \"color\": \"$color\", \"starting_time\": ${ + timeline.start}, \"ending_time\": ${timeline.end} },") + } + appendLine() + } + append("]") + appendLine() + append("},") + } + ) + appendLine() + } + } + appendLine() + append("]") + } + renderedTemplate = renderedTemplate + .replace("%timelines%", result) + .replace("%beginning%", beginning.toString()) + .replace("%ending%", ending.toString()) + .replace("%datetime%", DateTimeUtils.formatToDateTime(createdAt)) + return renderedTemplate + } + + fun getColor(index: Int): String { + val colors = listOf( + "#3b76af", + "#b3c6e5", + "#ef8536", + "#f5bd82", + "#519d3e", + "#a8dc93", + "#c53a32", + "#f19d99", + "#8d6ab8", + "#c2b1d2", + "#84584e", + "#be9e96", + "#d57ebe", + "#c2cd30" + ) + return colors[index % colors.size] + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricStage.kt new file mode 100644 index 00000000..7fcd497a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateNonCacheableTasksMetricStage( + private val buildInfo: BuildInfo, + private val createNonCacheableTasksMetricUseCase: CreateNonCacheableTasksMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + nonCacheableTasksMetric = createNonCacheableTasksMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricUseCase.kt new file mode 100644 index 00000000..dad980c4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/create/CreateNonCacheableTasksMetricUseCase.kt @@ -0,0 +1,51 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.NonCacheableTasksMetric +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.whenEach + +class CreateNonCacheableTasksMetricUseCase( + private val nonCacheableTasks: List +) : UseCase() { + + override suspend fun execute(input: BuildInfo): NonCacheableTasksMetric { + val temp = mutableListOf() + + nonCacheableTasks.whenEach { + input.executedTasks.filter { it.path == this }.forEach { task -> + temp.add( + NonCacheableTasksMetric.NonCacheableTask( + path = task.path, + avgExecutionDurationInMillis = task.getDurationInMillis() + ) + ) + } + } + + return NonCacheableTasksMetric(tasks = temp) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/CreateNonCacheableTasksReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/CreateNonCacheableTasksReportStage.kt new file mode 100644 index 00000000..bed08750 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/CreateNonCacheableTasksReportStage.kt @@ -0,0 +1,60 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.render + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.NonCacheableTasksReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBigger +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.modify +import io.github.janbarari.gradle.utils.MathUtils + +class CreateNonCacheableTasksReportStage( + private val metrics: List +): Stage { + + override suspend fun process(input: Report): Report { + return input.apply { + val tasks = metrics.last().nonCacheableTasksMetric?.tasks + ?.modify { + val medianValue = metrics + .filter { it.nonCacheableTasksMetric.isNotNull() } + .flatMap { metric -> + metric.nonCacheableTasksMetric!!.tasks + .filter { it.path == path } + .map { it.avgExecutionDurationInMillis } + } + avgExecutionDurationInMillis = MathUtils.longMedian(medianValue) + } + ?.filter { it.avgExecutionDurationInMillis.isBigger(0) } + ?: emptyList() + + nonCacheableTasksReport = NonCacheableTasksReport( + tasks = tasks + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/RenderNonCacheableTasksReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/RenderNonCacheableTasksReportStage.kt new file mode 100644 index 00000000..ded0de61 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/render/RenderNonCacheableTasksReportStage.kt @@ -0,0 +1,98 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.render + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderNonCacheableTasksReportStage( + private val report: Report +): Stage { + + companion object { + private const val NON_CACHEABLE_TASKS_METRIC_TEMPLATE_ID = "%non-cacheable-tasks-metric%" + private const val NON_CACHEABLE_TASKS_METRIC_TEMPLATE_FILENAME = "non-cacheable-tasks-metric-template" + } + + override suspend fun process(input: String): String { + if (report.nonCacheableTasksReport.isNull()) + return input.replace(NON_CACHEABLE_TASKS_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(NON_CACHEABLE_TASKS_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Non-cacheable Tasks is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(NON_CACHEABLE_TASKS_METRIC_TEMPLATE_FILENAME) + report.nonCacheableTasksReport.whenNotNull { + val labels = mutableListOf() + val colors = mutableListOf() + val dataset = mutableListOf() + + tasks.sortedByDescending { it.avgExecutionDurationInMillis } + .whenEach { + labels.add(path) + colors.add(getRandomColor()) + dataset.add(avgExecutionDurationInMillis) + } + + val chartHeight = dataset.size * 36 + + renderedTemplate = renderedTemplate + .replace("%labels%", labels.toArrayString()) + .replace("%colors%", colors.toArrayString()) + .replace("%dataset%", dataset.toString()) + .replace("%chart-height%", "${chartHeight}px") + } + return renderedTemplate + } + + fun getRandomColor(): String { + val colors = listOf( + "#3b76af", + "#b3c6e5", + "#ef8536", + "#f5bd82", + "#519d3e", + "#a8dc93", + "#c53a32", + "#f19d99", + "#8d6ab8", + "#c2b1d2", + "#84584e", + "#be9e96", + "#d57ebe", + "#c2cd30" + ) + return colors[colors.indices.random() % colors.size] + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricStage.kt new file mode 100644 index 00000000..47c586f2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateNonCacheableTasksMetricStage( + private val updateNonCacheableTasksMetricUseCase: UpdateNonCacheableTasksMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + nonCacheableTasksMetric = updateNonCacheableTasksMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricUseCase.kt new file mode 100644 index 00000000..8569025e --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/noncacheabletasks/update/UpdateNonCacheableTasksMetricUseCase.kt @@ -0,0 +1,54 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.noncacheabletasks.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.NonCacheableTasksMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.modify +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateNonCacheableTasksMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): NonCacheableTasksMetric { + val tasks = repo.getTemporaryMetrics().last().nonCacheableTasksMetric!!.tasks + .modify { + val medianValue = repo.getTemporaryMetrics() + .filter { it.nonCacheableTasksMetric.isNotNull() } + .flatMap { metric -> + metric.nonCacheableTasksMetric!!.tasks + .filter { task -> task.path == path } + .map { task -> task.avgExecutionDurationInMillis } + } + avgExecutionDurationInMillis = MathUtils.longMedian(medianValue) + } + + return NonCacheableTasksMetric( + tasks = tasks + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricStage.kt new file mode 100644 index 00000000..68265dba --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateOverallBuildProcessMetricStage( + private val buildInfo: BuildInfo, + private val createOverallBuildProcessMetricUseCase: CreateOverallBuildProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + overallBuildProcessMetric = createOverallBuildProcessMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricUseCase.kt new file mode 100644 index 00000000..088a049c --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/create/CreateOverallBuildProcessMetricUseCase.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.OverallBuildProcessMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateOverallBuildProcessMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): OverallBuildProcessMetric { + return OverallBuildProcessMetric( + median = input.getTotalDuration().toMillis(), + mean = input.getTotalDuration().toMillis() + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/CreateOverallBuildProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/CreateOverallBuildProcessReportStage.kt new file mode 100644 index 00000000..17172928 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/CreateOverallBuildProcessReportStage.kt @@ -0,0 +1,68 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.OverallBuildProcessReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToOverallBuildProcessMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToOverallBuildProcessMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateOverallBuildProcessReportStage( + private val metrics: List +) : Stage { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.overallBuildProcessMetric.isNotNull() && + metric.overallBuildProcessMetric?.median?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToOverallBuildProcessMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.overallBuildProcessMetric.isNotNull() && + metric.overallBuildProcessMetric?.mean?.isBiggerEquals(SKIP_THRESHOLD_IN_MS) ?: false + }.mapToOverallBuildProcessMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + overallBuildProcessReport = OverallBuildProcessReport( + medianValues = medianChartPoints, + meanValues = meanChartPoints, + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/RenderOverallBuildProcessReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/RenderOverallBuildProcessReportStage.kt new file mode 100644 index 00000000..2f5d90b4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/report/RenderOverallBuildProcessReportStage.kt @@ -0,0 +1,98 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +class RenderOverallBuildProcessReportStage( + private val report: Report +) : Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MIN_MAX_PERCENTAGE = 30 + private const val OVERALL_BUILD_PROCESS_METRIC_TEMPLATE_ID = "%overall-build-process-metric%" + private const val OVERALL_BUILD_PROCESS_METRIC_TEMPLATE_FILE_NAME = "overall-build-process-metric-template" + } + + override suspend fun process(input: String): String { + if (report.overallBuildProcessReport.isNull()) + return input.replace(OVERALL_BUILD_PROCESS_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(OVERALL_BUILD_PROCESS_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Overall Build Process is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(OVERALL_BUILD_PROCESS_METRIC_TEMPLATE_FILE_NAME) + report.overallBuildProcessReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + val maximumValue = Math.max(medianValues.maxValue(), meanValues.maxValue()) + val minimumValue = Math.min(medianValues.minValue(), meanValues.minValue()) + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(maximumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + val chartSuggestedMinValue = MathUtils.deductWithPercentage(minimumValue, CHART_SUGGESTED_MIN_MAX_PERCENTAGE) + + renderedTemplate = renderedTemplate + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricStage.kt new file mode 100644 index 00000000..d1f34db6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateOverallBuildProcessMetricStage( + private val updateOverallBuildProcessMetricUseCase: UpdateOverallBuildProcessMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + overallBuildProcessMetric = updateOverallBuildProcessMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricUseCase.kt new file mode 100644 index 00000000..be601fe8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/overallbuildprocess/update/UpdateOverallBuildProcessMetricUseCase.kt @@ -0,0 +1,63 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.overallbuildprocess.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.OverallBuildProcessMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isBiggerEquals +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.extension.whenTrue +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateOverallBuildProcessMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + companion object { + private const val SKIP_THRESHOLD_IN_MS = 50L + } + + override suspend fun execute(): OverallBuildProcessMetric { + val medianValues = mutableListOf() + val meanValues = mutableListOf() + repo.getTemporaryMetrics().whenEach { + overallBuildProcessMetric.whenNotNull { + // In order to have accurate metric, don't add metric value in Median dataset if it's under 50 milliseconds. + median.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + medianValues.add(median) + } + mean.isBiggerEquals(SKIP_THRESHOLD_IN_MS).whenTrue { + meanValues.add(mean) + } + } + } + + return OverallBuildProcessMetric( + median = MathUtils.longMedian(medianValues), + mean = MathUtils.longMean(meanValues) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricStage.kt new file mode 100644 index 00000000..380c670e --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricStage.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateParallelExecutionRateMetricStage( + private val buildInfo: BuildInfo, + private val createParallelExecutionRateMetricUseCase: CreateParallelExecutionRateMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + if (buildInfo.isSuccessful) { + parallelExecutionRateMetric = createParallelExecutionRateMetricUseCase.execute(buildInfo) + } + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricUseCase.kt new file mode 100644 index 00000000..5514cb41 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/create/CreateParallelExecutionRateMetricUseCase.kt @@ -0,0 +1,42 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.ParallelExecutionRateMetric +import io.github.janbarari.gradle.core.UseCase +import io.github.janbarari.gradle.extension.toPercentageOf + +class CreateParallelExecutionRateMetricUseCase : UseCase() { + + override suspend fun execute(input: BuildInfo): ParallelExecutionRateMetric { + val nonParallelExecutionInMillis = input.calculateNonParallelExecutionInMillis() + val parallelExecutionInMillis = input.calculateParallelExecutionByMillis() + val rate = (parallelExecutionInMillis - nonParallelExecutionInMillis) + .toPercentageOf(nonParallelExecutionInMillis) + .toLong() + + return ParallelExecutionRateMetric(medianRate = rate) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/CreateParallelExecutionRateReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/CreateParallelExecutionRateReportStage.kt new file mode 100644 index 00000000..71f175b9 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/CreateParallelExecutionRateReportStage.kt @@ -0,0 +1,52 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.ParallelExecutionRateReport +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToParallelExecutionRateMedianTimespanPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateParallelExecutionRateReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val timespanPoints = metrics + .filter { it.parallelExecutionRateMetric.isNotNull() } + .mapToParallelExecutionRateMedianTimespanPoints() + .whenEmpty { + return input + } + + return input.apply { + parallelExecutionRateReport = ParallelExecutionRateReport( + medianValues = timespanPoints + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/RenderParallelExecutionRateReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/RenderParallelExecutionRateReportStage.kt new file mode 100644 index 00000000..31ee5873 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/report/RenderParallelExecutionRateReportStage.kt @@ -0,0 +1,88 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.maxValue +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Generates html result for [io.github.janbarari.gradle.analytics.domain.model.report.ParallelExecutionRateReport] + */ +class RenderParallelExecutionRateReportStage( + private val report: Report +): Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val CHART_SUGGESTED_MAX_PERCENTAGE = 30 + private const val PARALLEL_EXECUTION_RATE_METRIC_TEMPLATE_ID = "%parallel-execution-rate-metric%" + private const val PARALLEL_EXECUTION_RATE_METRIC_TEMPLATE_FILE_NAME = "parallel-execution-rate-metric-template" + } + + override suspend fun process(input: String): String { + if (report.parallelExecutionRateReport.isNull()) + return input.replace(PARALLEL_EXECUTION_RATE_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(PARALLEL_EXECUTION_RATE_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(PARALLEL_EXECUTION_RATE_METRIC_TEMPLATE_FILE_NAME) + report.parallelExecutionRateReport.whenNotNull { + val chartPoints = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + + val chartValues = chartPoints.map { it.value } + .toIntList() + .toString() + + val chartLabels = chartPoints.map { it.description } + .toArrayString() + + val chartSuggestedMaxValue = MathUtils.sumWithPercentage(chartPoints.maxValue(), CHART_SUGGESTED_MAX_PERCENTAGE) + val chartSuggestedMinValue = 0 + + renderedTemplate = renderedTemplate + .replace("%chart-median-values%", chartValues) + .replace("%chart-labels%", chartLabels) + .replace("%suggested-min-value%", chartSuggestedMinValue.toString()) + .replace("%suggested-max-value%", chartSuggestedMaxValue.toString()) + } + return renderedTemplate + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Parallel Execution Rate is not available!") + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricStage.kt new file mode 100644 index 00000000..9cd010cf --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateParallelExecutionRateMetricStage( + private val updateParallelExecutionRateMetricUseCase: UpdateParallelExecutionRateMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + parallelExecutionRateMetric = updateParallelExecutionRateMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricUseCase.kt new file mode 100644 index 00000000..d2e700e3 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/paralleexecutionrate/update/UpdateParallelExecutionRateMetricUseCase.kt @@ -0,0 +1,45 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.ParallelExecutionRateMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.utils.MathUtils + +class UpdateParallelExecutionRateMetricUseCase( + private val repo: DatabaseRepository +): UseCaseNoInput() { + + override suspend fun execute(): ParallelExecutionRateMetric { + val rates = repo.getTemporaryMetrics() + .filter { it.parallelExecutionRateMetric.isNotNull() } + .map { it.parallelExecutionRateMetric!!.medianRate } + + return ParallelExecutionRateMetric( + medianRate = MathUtils.longMedian(rates) + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricStage.kt new file mode 100644 index 00000000..fda73672 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricStage.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class CreateSuccessBuildRateMetricStage( + private val buildInfo: BuildInfo, + private val createSuccessBuildRateMetricUseCase: CreateSuccessBuildRateMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + successBuildRateMetric = createSuccessBuildRateMetricUseCase.execute(buildInfo) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricUseCase.kt new file mode 100644 index 00000000..4b71d93b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/create/CreateSuccessBuildRateMetricUseCase.kt @@ -0,0 +1,40 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.create + +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.SuccessBuildRateMetric +import io.github.janbarari.gradle.core.UseCase + +class CreateSuccessBuildRateMetricUseCase: UseCase() { + + override suspend fun execute(input: BuildInfo): SuccessBuildRateMetric { + return SuccessBuildRateMetric( + medianRate = if (input.isSuccessful) 100F else 0F, + meanRate = if (input.isSuccessful) 100F else 0F, + successes = if (input.isSuccessful) 1 else 0, + fails = if (!input.isSuccessful) 1 else 0 + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/CreateSuccessBuildRateReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/CreateSuccessBuildRateReportStage.kt new file mode 100644 index 00000000..152b9421 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/CreateSuccessBuildRateReportStage.kt @@ -0,0 +1,61 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.report + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.analytics.domain.model.report.SuccessBuildRateReport +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.mapToSuccessBuildRateMeanTimespanChartPoints +import io.github.janbarari.gradle.extension.mapToSuccessBuildRateMedianTimespanChartPoints +import io.github.janbarari.gradle.extension.whenEmpty + +class CreateSuccessBuildRateReportStage( + private val metrics: List +) : Stage { + + override suspend fun process(input: Report): Report { + val medianChartPoints = metrics.filter { metric -> + metric.successBuildRateMetric.isNotNull() + }.mapToSuccessBuildRateMedianTimespanChartPoints() + .whenEmpty { + return input + } + + val meanChartPoints = metrics.filter { metric -> + metric.successBuildRateMetric.isNotNull() + }.mapToSuccessBuildRateMeanTimespanChartPoints() + .whenEmpty { + return input + } + + return input.apply { + successBuildRateReport = SuccessBuildRateReport( + meanValues = meanChartPoints, + medianValues = medianChartPoints + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/RenderSuccessBuildRateReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/RenderSuccessBuildRateReportStage.kt new file mode 100644 index 00000000..76229f45 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/report/RenderSuccessBuildRateReportStage.kt @@ -0,0 +1,87 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.report + +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.mapToChartPoints +import io.github.janbarari.gradle.extension.minimize +import io.github.janbarari.gradle.extension.toArrayString +import io.github.janbarari.gradle.extension.toIntList +import io.github.janbarari.gradle.extension.whenNotNull +import io.github.janbarari.gradle.utils.HtmlUtils + +class RenderSuccessBuildRateReportStage( + private val report: Report +): Stage { + + companion object { + private const val CHART_MAX_COLUMNS = 12 + private const val BUILD_SUCCESS_RATIO_METRIC_TEMPLATE_ID = "%success-build-rate-metric%" + private const val BUILD_SUCCESS_RATIO_METRIC_TEMPLATE_FILE_NAME = "success-build-rate-metric-template" + } + + override suspend fun process(input: String): String { + if (report.successBuildRateReport.isNull()) + return input.replace(BUILD_SUCCESS_RATIO_METRIC_TEMPLATE_ID, getEmptyRender()) + + return input.replace(BUILD_SUCCESS_RATIO_METRIC_TEMPLATE_ID, getMetricRender()) + } + + fun getEmptyRender(): String { + return HtmlUtils.renderMessage("Success Build Rate is not available!") + } + + fun getMetricRender(): String { + var renderedTemplate = HtmlUtils.getTemplate(BUILD_SUCCESS_RATIO_METRIC_TEMPLATE_FILE_NAME) + report.successBuildRateReport.whenNotNull { + val medianChartValues = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val meanChartValues = meanValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.value } + .toIntList() + .toString() + + val chartLabels = medianValues + .minimize(CHART_MAX_COLUMNS) + .mapToChartPoints() + .map { it.description } + .toArrayString() + + renderedTemplate = renderedTemplate + .replace("%chart-median-values%", medianChartValues) + .replace("%chart-mean-values%", meanChartValues) + .replace("%chart-labels%", chartLabels) + } + return renderedTemplate + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricStage.kt new file mode 100644 index 00000000..54d13db8 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricStage.kt @@ -0,0 +1,38 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Stage + +class UpdateSuccessBuildRateMetricStage( + private val updateSuccessBuildRateMetricUseCase: UpdateSuccessBuildRateMetricUseCase +): Stage { + + override suspend fun process(input: BuildMetric): BuildMetric { + return input.apply { + successBuildRateMetric = updateSuccessBuildRateMetricUseCase.execute() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricUseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricUseCase.kt new file mode 100644 index 00000000..01fbdb48 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/metric/successbuildrate/update/UpdateSuccessBuildRateMetricUseCase.kt @@ -0,0 +1,70 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.metric.successbuildrate.update + +import io.github.janbarari.gradle.analytics.domain.model.metric.SuccessBuildRateMetric +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.core.UseCaseNoInput +import io.github.janbarari.gradle.extension.toPercentageOf +import io.github.janbarari.gradle.extension.whenEach +import io.github.janbarari.gradle.extension.whenNotNull + +class UpdateSuccessBuildRateMetricUseCase( + private val repo: DatabaseRepository +) : UseCaseNoInput() { + + override suspend fun execute(): SuccessBuildRateMetric { + var meanSuccesses = 0 + var meanFailures = 0 + var medianSuccesses = 0 + var medianFailures = 0 + var successesCount = 0 + var failsCount = 0 + + repo.getTemporaryMetrics().whenEach { + successBuildRateMetric.whenNotNull { + when (meanRate) { + 0F -> meanFailures++ + 100F -> meanSuccesses++ + } + when (medianRate) { + 0F -> medianFailures++ + 100F -> medianSuccesses++ + } + successesCount += successes + failsCount += fails + } + } + + val meanTotalBuildCount = meanFailures + meanSuccesses + val medianTotalBuildCount = medianFailures + medianSuccesses + + return SuccessBuildRateMetric( + medianRate = medianSuccesses.toPercentageOf(medianTotalBuildCount), + meanRate = meanSuccesses.toPercentageOf(meanTotalBuildCount), + successes = successesCount, + fails = failsCount + ) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/CreateReportPipeline.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/CreateReportPipeline.kt new file mode 100644 index 00000000..c5aa91a2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/CreateReportPipeline.kt @@ -0,0 +1,30 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.core.Pipeline +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.analytics.domain.model.report.Report + +open class CreateReportPipeline(firstStage: Stage) : + Pipeline(firstStage) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderInitialReportStage.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderInitialReportStage.kt new file mode 100644 index 00000000..b03326f2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderInitialReportStage.kt @@ -0,0 +1,104 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.analytics.GradleAnalyticsPlugin +import io.github.janbarari.gradle.core.Stage +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.utils.DateTimeUtils + +class RenderInitialReportStage private constructor( + private val data: List, + private val projectName: String, + private val requestedTasks: String, + private val branch: String, + private val gitHeadCommitHash: String, + private val isCI: Boolean +) : Stage { + + class Builder { + + private var data: List? = null + private var projectName: String? = null + private var requestedTasks: String? = null + private var branch: String? = null + private var gitHeadCommitHash: String? = null + private var isCI: Boolean? = null + + fun data(value: List) = apply { + data = value + } + + fun projectName(value: String) = apply { + projectName = value + } + + fun requestedTasks(value: String) = apply { + requestedTasks = value + } + + fun branch(value: String) = apply { + branch = value + } + + fun gitHeadCommitHash(value: String) = apply { + gitHeadCommitHash = value + } + + fun isCI(value: Boolean) = apply { + isCI = value + } + + fun build(): RenderInitialReportStage { + return RenderInitialReportStage( + data!!, + projectName!!, + requestedTasks!!, + branch!!, + gitHeadCommitHash!!, + isCI!! + ) + } + + } + + override suspend fun process(input: String): String { + var result = input.replace("%root-project-name%", projectName) + .replace("%task-path%", requestedTasks) + .replace("%branch%", branch) + .replace("%git-head-commit-hash%", gitHeadCommitHash) + .replace("%reported-at%", DateTimeUtils.formatToDateTime(System.currentTimeMillis())) + .replace("%is-ci%", if (isCI) "Yes" else "No") + .replace("%plugin-version%", GradleAnalyticsPlugin.PLUGIN_VERSION) + + if (data.isNotEmpty()) { + val oldest = data.last() + val newest = data.first() + result = result.replace("%time-period-end%", DateTimeUtils.formatToDate(oldest.createdAt)) + .replace("%time-period-start%", DateTimeUtils.formatToDate(newest.createdAt)) + } + + return result + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderReportPipeline.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderReportPipeline.kt new file mode 100644 index 00000000..2179adbb --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/RenderReportPipeline.kt @@ -0,0 +1,28 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.core.Pipeline +import io.github.janbarari.gradle.core.Stage + +class RenderReportPipeline(firstStage: Stage): Pipeline(firstStage) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsInjector.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsInjector.kt new file mode 100644 index 00000000..f1938acf --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsInjector.kt @@ -0,0 +1,92 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import com.squareup.moshi.Moshi +import io.github.janbarari.gradle.analytics.data.DatabaseRepositoryImp +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.analytics.domain.usecase.GetMetricsUseCase +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.usecase.GetModulesTimelineUseCase + +/** + * Dependency injection for [io.github.janbarari.gradle.analytics.reporttask.ReportAnalyticsTask]. + */ +@ExcludeJacocoGenerated +class ReportAnalyticsInjector( + var branch: String? = null, + var requestedTasks: String? = null, + var isCI: Boolean? = null, + var databaseConfig: DatabaseConfig? = null, + var outputPath: String? = null, + var projectName: String? = null, + var modules: List? = null +) + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideDatabase(): Database { + return Database(databaseConfig!!, isCI!!) +} + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideMoshi(): Moshi { + return Moshi.Builder().build() +} + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideDatabaseRepository(): DatabaseRepository { + return DatabaseRepositoryImp( + db = provideDatabase(), + branch = branch!!, + requestedTasks = requestedTasks!!, + moshi = provideMoshi() + ) +} + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideGetMetricsUseCase(): GetMetricsUseCase { + return GetMetricsUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideGetModulesTimelineUseCase(): GetModulesTimelineUseCase { + return GetModulesTimelineUseCase( + moshi = provideMoshi(), + repo = provideDatabaseRepository() + ) +} + +@ExcludeJacocoGenerated +fun ReportAnalyticsInjector.provideReportAnalyticsLogic(): ReportAnalyticsLogic { + return ReportAnalyticsLogicImp( + provideGetMetricsUseCase(), + provideGetModulesTimelineUseCase(), + isCI!!, + outputPath!!, + projectName!!, + modules!! + ) +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogic.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogic.kt new file mode 100644 index 00000000..aee9684d --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogic.kt @@ -0,0 +1,48 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.analytics.reporttask.exception.InvalidPropertyException +import io.github.janbarari.gradle.analytics.reporttask.exception.MissingPropertyException +import java.io.IOException + +interface ReportAnalyticsLogic { + + @kotlin.jvm.Throws(IOException::class) + suspend fun saveReport(renderedHTML: String): String + + suspend fun generateReport(branch: String, requestedTasks: String, period: String): String + + @kotlin.jvm.Throws(MissingPropertyException::class, InvalidPropertyException::class) + fun ensureBranchArgumentValid(branchArgument: String) + + @kotlin.jvm.Throws(MissingPropertyException::class, InvalidPropertyException::class) + fun ensurePeriodArgumentValid(periodArgument: String) + + @kotlin.jvm.Throws(MissingPropertyException::class, InvalidPropertyException::class) + fun ensureTaskArgumentValid(requestedTasksArgument: String) + + @kotlin.jvm.Throws(InvalidPropertyException::class) + fun convertQueryToPeriod(query: String): Pair + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogicImp.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogicImp.kt new file mode 100644 index 00000000..1d25a27a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsLogicImp.kt @@ -0,0 +1,285 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.model.report.Report +import io.github.janbarari.gradle.analytics.domain.usecase.GetMetricsUseCase +import io.github.janbarari.gradle.analytics.domain.usecase.GetModulesTimelineUseCase +import io.github.janbarari.gradle.analytics.metric.buildstatus.render.CreateBuildStatusReportStage +import io.github.janbarari.gradle.analytics.metric.buildstatus.render.RenderBuildStatusReportStage +import io.github.janbarari.gradle.analytics.metric.cachehit.report.CreateCacheHitReportStage +import io.github.janbarari.gradle.analytics.metric.cachehit.report.RenderCacheHitReportStage +import io.github.janbarari.gradle.analytics.metric.configurationprocess.report.CreateConfigurationProcessReportStage +import io.github.janbarari.gradle.analytics.metric.configurationprocess.report.RenderConfigurationProcessReportStage +import io.github.janbarari.gradle.analytics.metric.dependencydetails.render.CreateDependencyDetailsReportStage +import io.github.janbarari.gradle.analytics.metric.dependencydetails.render.RenderDependencyDetailsReportStage +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.report.CreateDependencyResolveProcessReportStage +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.report.RenderDependencyResolveProcessReportStage +import io.github.janbarari.gradle.analytics.metric.executionprocess.report.CreateExecutionProcessReportStage +import io.github.janbarari.gradle.analytics.metric.executionprocess.report.RenderExecutionProcessReportStage +import io.github.janbarari.gradle.analytics.metric.initializationprocess.report.CreateInitializationProcessReportStage +import io.github.janbarari.gradle.analytics.metric.initializationprocess.report.RenderInitializationProcessReportStage +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.render.CreateModulesBuildHeatmapReportStage +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.render.RenderModulesBuildHeatmapReportStage +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.render.CreateModulesCrashCountReportStage +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.render.RenderModulesCrashCountReportStage +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.report.CreateModulesDependencyGraphReportStage +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.report.RenderModulesDependencyGraphReportStage +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.report.CreateModulesExecutionProcessReportStage +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.report.RenderModulesExecutionProcessReportStage +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.report.CreateModulesMethodCountReportStage +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.report.RenderModulesMethodCountStage +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.report.CreateModulesSourceCountReportStage +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.report.RenderModulesSourceCountStage +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.report.CreateModulesSourceSizeReportStage +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.report.RenderModulesSourceSizeReportStage +import io.github.janbarari.gradle.analytics.metric.modulestimeline.render.CreateModulesTimelineReportStage +import io.github.janbarari.gradle.analytics.metric.modulestimeline.render.RenderModulesTimelineReportStage +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.render.CreateNonCacheableTasksReportStage +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.render.RenderNonCacheableTasksReportStage +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.report.CreateOverallBuildProcessReportStage +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.report.RenderOverallBuildProcessReportStage +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.report.CreateParallelExecutionRateReportStage +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.report.RenderParallelExecutionRateReportStage +import io.github.janbarari.gradle.analytics.metric.successbuildrate.report.CreateSuccessBuildRateReportStage +import io.github.janbarari.gradle.analytics.metric.successbuildrate.report.RenderSuccessBuildRateReportStage +import io.github.janbarari.gradle.analytics.reporttask.exception.EmptyMetricsException +import io.github.janbarari.gradle.analytics.reporttask.exception.InvalidPropertyException +import io.github.janbarari.gradle.analytics.reporttask.exception.MissingPropertyException +import io.github.janbarari.gradle.extension.getSafeResourceAsStream +import io.github.janbarari.gradle.extension.getTextResourceContent +import io.github.janbarari.gradle.extension.hasSpace +import io.github.janbarari.gradle.extension.toRealPath +import io.github.janbarari.gradle.utils.DateTimeUtils +import org.apache.commons.io.FileUtils +import java.io.File +import java.io.IOException + +/** + * In order to make the [io.github.janbarari.gradle.analytics.reporttask.ReportAnalyticsTask] + * testable and the logic framework independent. + */ +class ReportAnalyticsLogicImp( + private val getMetricsUseCase: GetMetricsUseCase, + private val getModulesTimelineUseCase: GetModulesTimelineUseCase, + private val isCI: Boolean, + private val outputPath: String, + private val projectName: String, + private val modules: List +) : ReportAnalyticsLogic { + + @kotlin.jvm.Throws(EmptyMetricsException::class) + override suspend fun generateReport(branch: String, requestedTasks: String, period: String): String { + val convertedPeriod = convertQueryToPeriod(period) + val data = getMetricsUseCase.execute(convertedPeriod) + + if (data.isEmpty()) throw EmptyMetricsException() + + val report = generateReport( + data = data, + branch = branch, + requestedTasks = requestedTasks + ) + + return generateRender( + data = data, + report = report, + branch = branch, + requestedTasks = requestedTasks + ) + } + + private suspend fun generateReport(data: List, branch: String, requestedTasks: String): Report { + return CreateReportPipeline(CreateInitializationProcessReportStage(data)).addStage( + CreateConfigurationProcessReportStage( + data + ) + ).addStage(CreateExecutionProcessReportStage(data)).addStage(CreateOverallBuildProcessReportStage(data)) + .addStage(CreateModulesSourceCountReportStage(data)).addStage(CreateModulesMethodCountReportStage(data)) + .addStage(CreateCacheHitReportStage(data)).addStage(CreateSuccessBuildRateReportStage(data)) + .addStage(CreateDependencyResolveProcessReportStage(data)).addStage(CreateParallelExecutionRateReportStage(data)) + .addStage(CreateModulesExecutionProcessReportStage(modules, data)) + .addStage(CreateModulesDependencyGraphReportStage(data)) + .addStage(CreateModulesTimelineReportStage(branch, getModulesTimelineUseCase)) + .addStage(CreateBuildStatusReportStage(modules, data)).addStage(CreateModulesBuildHeatmapReportStage(data)) + .addStage(CreateDependencyDetailsReportStage(data)).addStage(CreateNonCacheableTasksReportStage(data)) + .addStage(CreateModulesSourceSizeReportStage(data)).addStage(CreateModulesCrashCountReportStage(modules, data)) + .execute( + Report( + branch = branch, requestedTasks = requestedTasks + ) + ) + } + + private suspend fun generateRender( + data: List, report: Report, branch: String, requestedTasks: String + ): String { + val rawHTML: String = getTextResourceContent("index-template.html") + + val renderInitialReportStage = RenderInitialReportStage.Builder() + .gitHeadCommitHash(data.last().gitHeadCommitHash.replace("\"", "")) + .requestedTasks(requestedTasks) + .projectName(projectName) + .branch(branch) + .data(data) + .isCI(isCI) + .build() + + return RenderReportPipeline(renderInitialReportStage) + .addStage(RenderInitializationProcessReportStage(report)) + .addStage(RenderConfigurationProcessReportStage(report)) + .addStage(RenderExecutionProcessReportStage(report)) + .addStage(RenderOverallBuildProcessReportStage(report)) + .addStage(RenderModulesSourceCountStage(report)) + .addStage(RenderModulesMethodCountStage(report)) + .addStage(RenderCacheHitReportStage(report)) + .addStage(RenderSuccessBuildRateReportStage(report)) + .addStage(RenderDependencyResolveProcessReportStage(report)) + .addStage(RenderParallelExecutionRateReportStage(report)) + .addStage(RenderModulesExecutionProcessReportStage(report)) + .addStage(RenderModulesDependencyGraphReportStage(report)) + .addStage(RenderModulesTimelineReportStage(report)) + .addStage(RenderBuildStatusReportStage(report)) + .addStage(RenderModulesBuildHeatmapReportStage(report)) + .addStage(RenderDependencyDetailsReportStage(report)) + .addStage(RenderNonCacheableTasksReportStage(report)) + .addStage(RenderModulesSourceSizeReportStage(report)) + .addStage(RenderModulesCrashCountReportStage(report)) + .execute(rawHTML) + } + + @kotlin.jvm.Throws(IOException::class) + override suspend fun saveReport(renderedHTML: String): String { + val resources = listOf( + "nunito.ttf", "plugin-logo.png", "styles.css", "functions.js", "chart.js", "mermaid.js", "d3.js", "timeline.js" + ) + val savePath = "${outputPath.toRealPath()}/gradle-analytics-plugin" + + //copy resources + resources.forEach { resource -> + FileUtils.copyInputStreamToFile( + javaClass.getSafeResourceAsStream("/res/$resource"), File("$savePath/res/$resource") + ) + } + + //write index.html + File("$savePath/index.html").writeText(renderedHTML) + + return "$savePath/index.html" + } + + /** + * Ensures the `--branch` input argument is set and valid. + */ + @kotlin.jvm.Throws(MissingPropertyException::class, InvalidPropertyException::class) + override fun ensureBranchArgumentValid(branchArgument: String) { + if (branchArgument.isEmpty()) throw MissingPropertyException("`--branch` is not present!") + if (branchArgument.hasSpace()) throw InvalidPropertyException("`--branch` is not valid!") + } + + /** + * Ensures the `--period` input argument is set and valid. + */ + @kotlin.jvm.Throws(MissingPropertyException::class, InvalidPropertyException::class) + override fun ensurePeriodArgumentValid(periodArgument: String) { + if (periodArgument.isEmpty()) throw MissingPropertyException("`--period` is not present!") + convertQueryToPeriod(periodArgument) + } + + /** + * Ensures the `--task` input argument is set and valid. + */ + @kotlin.jvm.Throws(MissingPropertyException::class) + override fun ensureTaskArgumentValid(requestedTasksArgument: String) { + if (requestedTasksArgument.isEmpty()) throw MissingPropertyException("`--task` is not present!") + } + + @kotlin.jvm.Throws(InvalidPropertyException::class) + override fun convertQueryToPeriod(query: String): Pair { + + @Suppress("ComplexCondition") + fun isCorrectlySorted(query: String): Boolean { + val temp = query.split(" ").filter { it.isNotEmpty() }.map { it.last() } + + return when (temp) { + listOf('y', 'm', 'd') -> true + listOf('y', 'd') -> true + listOf('y', 'm') -> true + listOf('y') -> true + listOf('m', 'd') -> true + listOf('m') -> true + listOf('d') -> true + else -> false + } + } + + try { + // today + if (query == "today") return DateTimeUtils.getDayStartMs() to DateTimeUtils.getDayEndMs() + + // custom dates + if (query.contains(",")) { + var startDate = query.split(",")[0] + var endDate = query.split(",")[1] + startDate = startDate.replace("s:", "") + endDate = endDate.replace("e:", "") + val start = DateTimeUtils.convertDateToEpochMilli(startDate) + val end = DateTimeUtils.convertDateToEpochMilli(endDate) + return start to end + } + + // relative + var years = 0 + var months = 0 + var days = 0 + if (query.chars().filter { it == 'y'.code }.count() >= 2 || query.chars().filter { it == 'm'.code } + .count() >= 2 || query.chars().filter { it == 'd'.code } + .count() >= 2) throw InvalidPropertyException("--period has duplicate input") + + query.split(" ").forEach { + if (it.last() == 'y') years = it.substring(0, it.length - 1).toInt() + else if (it.last() == 'm') months = it.substring(0, it.length - 1).toInt() + else if (it.last() == 'd') days = it.substring(0, it.length - 1).toInt() + else throw InvalidPropertyException("--period is wrong") + + } + + if (!isCorrectlySorted(query)) throw InvalidPropertyException("--period is wrong sorted") + + val duration: Long = (years * 32_140_800_000L) + (months * 2_678_400_000L) + (days * 86_400_000L) + if (duration > 32_140_800_000L) throw InvalidPropertyException("--period can not be more than 1 year!") + + val start = DateTimeUtils.getDayStartMs() - duration + val end = DateTimeUtils.getDayEndMs() + return start to end + } catch (e: Throwable) { + if (e is InvalidPropertyException) throw e + throw InvalidPropertyException( + "--period can be like \"today\", \"s:yyyy/MM/dd,e:yyyy/MM/dd\", \"1y\", \"4m\", \"38d\", \"3m 06d\"" + ) + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsTask.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsTask.kt new file mode 100644 index 00000000..c5fabe8a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/ReportAnalyticsTask.kt @@ -0,0 +1,162 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.GradleAnalyticsPluginConfig +import io.github.janbarari.gradle.analytics.domain.model.Module.Companion.toModule +import io.github.janbarari.gradle.analytics.reporttask.exception.EmptyMetricsException +import io.github.janbarari.gradle.extension.envCI +import io.github.janbarari.gradle.extension.isDependingOnOtherProject +import io.github.janbarari.gradle.extension.registerTask +import io.github.janbarari.gradle.utils.ConsolePrinter +import kotlinx.coroutines.runBlocking +import org.gradle.api.DefaultTask +import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction +import org.gradle.api.tasks.options.Option +import org.gradle.work.DisableCachingByDefault + +/** + * A Gradle task that generates the report based on `git branch`, `time period` and `task`. + * + * A quick instruction about how to invoke the task: + * `./gradlew reportAnalytics --branch="{your-branch}" --task="{your-task}" --period="{a-number-between-1-to-12}"` + */ +@ExcludeJacocoGenerated +@DisableCachingByDefault +abstract class ReportAnalyticsTask : DefaultTask() { + + companion object { + const val TASK_NAME = "reportAnalytics" + + @ExcludeJacocoGenerated + fun register(config: GradleAnalyticsPluginConfig) { + config.project.registerTask(TASK_NAME) { + projectNameProperty.set(project.rootProject.name) + envCIProperty.set(project.envCI().isPresent) + outputPathProperty.set(config.outputPath) + trackingTasksProperty.set(config.trackingTasks) + trackingBranchesProperty.set(config.trackingBranches) + databaseConfigProperty.set(config.getDatabaseConfig()) + outputs.cacheIf { false } + } + } + } + + @set:Option(option = "branch", description = "Git branch name") + @get:Input + var branchArgument: String = "" + + @set:Option(option = "task", description = "Tracking task path") + @get:Input + var requestedTasksArgument: String = "" + + @set:Option(option = "period", description = "Report period") + @get:Input + var periodArgument: String = "" + + @get:Input + abstract val projectNameProperty: Property + + @get:Input + abstract val envCIProperty: Property + + @get:Input + abstract val outputPathProperty: Property + + @get:Input + abstract val trackingTasksProperty: ListProperty + + @get:Input + abstract val trackingBranchesProperty: ListProperty + + @get:Input + abstract val databaseConfigProperty: Property + + /** + * Invokes when the task execution process started. + */ + @TaskAction + fun execute() = runBlocking { + val modules = project.subprojects + .filter { it.isDependingOnOtherProject() } + .map { it.toModule() } + + val injector = ReportAnalyticsInjector( + requestedTasks = requestedTasksArgument, + isCI = envCIProperty.get(), + databaseConfig = databaseConfigProperty.get(), + branch = branchArgument, + outputPath = outputPathProperty.get(), + projectName = projectNameProperty.get(), + modules = modules + ) + + with(injector.provideReportAnalyticsLogic()) { + ensureBranchArgumentValid(branchArgument) + ensurePeriodArgumentValid(periodArgument) + ensureTaskArgumentValid(requestedTasksArgument) + try { + val reportPath = saveReport(generateReport(branchArgument, requestedTasksArgument, periodArgument)) + printSuccessfulResult(reportPath) + } catch (e: EmptyMetricsException) { + printNoData() + } + } + } + + private fun printSuccessfulResult(reportPath: String) { + ConsolePrinter(blockCharWidth = reportPath.length).run { + printFirstLine() + printLine(left = "Gradle Analytics Plugin") + printBreakLine(char = '-') + printLine(left = "Report generated successfully") + printLine(left = reportPath) + printBreakLine(char = '-') + printLine(left = "Made with ❤ for everyone") + printLine(left = "https://github.com/janbarari/gradle-analytics-plugin") + printLine(right = " ↖ Tap the ☆ button to support us") + printLastLine() + } + } + + private fun printNoData() { + val message = listOf( + "There is no data to process. Please check the plugin configuration", + "and wait until the first desired task information is saved." + ) + ConsolePrinter(blockCharWidth = message[0].length).run { + printFirstLine() + printLine(left = "Gradle Analytics Plugin") + printBreakLine(char = '-') + printLine(left = message[0]) + printLine(left = message[1]) + printLastLine() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/EmptyMetricsException.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/EmptyMetricsException.kt new file mode 100644 index 00000000..1883d1ed --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/EmptyMetricsException.kt @@ -0,0 +1,27 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask.exception + +class EmptyMetricsException: Throwable() { + override val message: String = "No metrics are available for generating reports!" +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/InvalidPropertyException.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/InvalidPropertyException.kt new file mode 100644 index 00000000..97d28ff2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/InvalidPropertyException.kt @@ -0,0 +1,30 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask.exception + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +class InvalidPropertyException(msg: String): Throwable() { + override val message: String = msg +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/MissingPropertyException.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/MissingPropertyException.kt new file mode 100644 index 00000000..c3dad1a4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/reporttask/exception/MissingPropertyException.kt @@ -0,0 +1,30 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.reporttask.exception + +import io.github.janbarari.gradle.ExcludeJacocoGenerated + +@ExcludeJacocoGenerated +class MissingPropertyException(msg: String): Throwable() { + override val message: String = msg +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/DependencyGraphGenerator.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/DependencyGraphGenerator.kt new file mode 100644 index 00000000..d46cacbc --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/DependencyGraphGenerator.kt @@ -0,0 +1,61 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner + +import io.github.janbarari.gradle.analytics.domain.model.ModuleDependency +import io.github.janbarari.gradle.analytics.domain.model.ModulesDependencyGraph +import io.github.janbarari.gradle.extension.isDependingOnOtherProject +import org.gradle.api.Project +import org.gradle.api.artifacts.ProjectDependency + +object DependencyGraphGenerator { + + fun generate(project: Project): ModulesDependencyGraph { + val dependencies = mutableListOf() + + project.subprojects.filter { + it.isDependingOnOtherProject() + }.forEach { subProject -> + subProject.configurations.forEach { configuration -> + configuration.dependencies.withType(ProjectDependency::class.java).forEach { dependency -> + if (dependency.dependencyProject.path != subProject.path) { + dependencies.add( + ModuleDependency( + path = subProject.path, + configuration = configuration.name, + dependency = dependency.dependencyProject.path + ) + ) + } + + } + } + + } + + return ModulesDependencyGraph(dependencies) + } + +} + + diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/ScannerUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/ScannerUtils.kt new file mode 100644 index 00000000..90a1d02f --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/ScannerUtils.kt @@ -0,0 +1,100 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.GradleAnalyticsPluginConfig +import io.github.janbarari.gradle.analytics.domain.model.Dependency.Companion.getThirdPartyDependencies +import io.github.janbarari.gradle.analytics.domain.model.Module.Companion.toModule +import io.github.janbarari.gradle.analytics.scanner.configuration.BuildConfigurationService +import io.github.janbarari.gradle.analytics.scanner.dependencyresolution.BuildDependencyResolutionService +import io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService +import io.github.janbarari.gradle.analytics.scanner.initialization.BuildInitializationService +import io.github.janbarari.gradle.extension.envCI +import io.github.janbarari.gradle.extension.getNonCacheableTasks +import io.github.janbarari.gradle.extension.getRequestedTasks +import io.github.janbarari.gradle.extension.isDependingOnOtherProject +import org.gradle.api.Project +import org.gradle.build.event.BuildEventsListenerRegistry + +@ExcludeJacocoGenerated +object ScannerUtils { + + fun setupScannerServices( + config: GradleAnalyticsPluginConfig, + registry: BuildEventsListenerRegistry + ) { + setupInitializationService(config.project) + setupDependencyResolutionService(config.project) + setupConfigurationService(config.project) + setupExecutionService(config.project, registry, config) + } + + private fun setupExecutionService( + project: Project, + registry: BuildEventsListenerRegistry, + configuration: GradleAnalyticsPluginConfig + ) { + project.gradle.projectsEvaluated { + val nonCacheableTasks = project.allprojects + .flatMap { it.tasks.getNonCacheableTasks() } + + val modules = project.subprojects + .filter { it.isDependingOnOtherProject() } + .map { it.toModule() } + + val modulesDependencyGraph = DependencyGraphGenerator.generate(project) + + val buildExecutionService = project.gradle.sharedServices.registerIfAbsent( + BuildExecutionService::class.java.simpleName, + BuildExecutionService::class.java + ) { spec -> + with(spec.parameters) { + databaseConfig.set(configuration.getDatabaseConfig()) + envCI.set(project.envCI().isPresent) + requestedTasks.set(project.gradle.getRequestedTasks()) + trackingTasks.set(configuration.trackingTasks) + trackingBranches.set(configuration.trackingBranches) + this.modules.set(modules) + this.modulesDependencyGraph.set(modulesDependencyGraph) + this.dependencies.set(project.getThirdPartyDependencies()) + this.nonCachableTasks.set(nonCacheableTasks) + } + } + registry.onTaskCompletion(buildExecutionService) + } + } + + private fun setupInitializationService(project: Project) { + project.gradle.addBuildListener(BuildInitializationService(project.gradle)) + } + + private fun setupConfigurationService(project: Project) { + project.gradle.addBuildListener(BuildConfigurationService()) + } + + private fun setupDependencyResolutionService(project: Project) { + project.gradle.addBuildListener(BuildDependencyResolutionService()) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/configuration/BuildConfigurationService.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/configuration/BuildConfigurationService.kt new file mode 100644 index 00000000..082cb61a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/configuration/BuildConfigurationService.kt @@ -0,0 +1,70 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.configuration + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.BuildResult +import org.gradle.api.initialization.Settings +import org.gradle.api.invocation.Gradle +import org.gradle.internal.InternalBuildListener + +/** + * Track and holds the build configuration finish timestamp to use by + * [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService]. + */ +class BuildConfigurationService : InternalBuildListener { + + companion object { + var CONFIGURED_AT: Long = 0L + + fun reset() { + CONFIGURED_AT = 0L + } + + } + + init { + reset() + } + + @ExcludeJacocoGenerated + override fun settingsEvaluated(settings: Settings) { + // called when the root project settings evaluated. + } + + @ExcludeJacocoGenerated + override fun projectsLoaded(gradle: Gradle) { + // called when projects files loaded. + } + + override fun projectsEvaluated(gradle: Gradle) { + CONFIGURED_AT = System.currentTimeMillis() + } + + @ExcludeJacocoGenerated + @Deprecated("Deprecated") + override fun buildFinished(result: BuildResult) { + // This method is deprecated, Execution process are handled by BuildExecutionService.kt + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/dependencyresolution/BuildDependencyResolutionService.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/dependencyresolution/BuildDependencyResolutionService.kt new file mode 100644 index 00000000..9caa7575 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/dependencyresolution/BuildDependencyResolutionService.kt @@ -0,0 +1,89 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.dependencyresolution + +import io.github.janbarari.gradle.analytics.domain.model.DependencyResolveInfo +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.BuildResult +import org.gradle.api.artifacts.DependencyResolutionListener +import org.gradle.api.artifacts.ResolvableDependencies +import org.gradle.api.initialization.Settings +import org.gradle.api.invocation.Gradle +import org.gradle.internal.InternalBuildListener +import java.util.concurrent.ConcurrentHashMap + +/** + * Records the build dependencies resolve information to use by + * [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService]. + */ +class BuildDependencyResolutionService : InternalBuildListener, DependencyResolutionListener { + + companion object { + val dependenciesResolveInfo: ConcurrentHashMap = + ConcurrentHashMap() + + fun reset() { + dependenciesResolveInfo.clear() + } + + } + + init { + reset() + } + + @ExcludeJacocoGenerated + override fun beforeResolve(dependencies: ResolvableDependencies) { + dependenciesResolveInfo[dependencies.path] = DependencyResolveInfo( + dependencies.path, + startedAt = System.currentTimeMillis() + ) + } + + @ExcludeJacocoGenerated + override fun afterResolve(dependencies: ResolvableDependencies) { + dependenciesResolveInfo[dependencies.path]?.finishedAt = System.currentTimeMillis() + } + + @ExcludeJacocoGenerated + override fun settingsEvaluated(settings: Settings) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + @ExcludeJacocoGenerated + override fun projectsLoaded(gradle: Gradle) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + @ExcludeJacocoGenerated + override fun projectsEvaluated(gradle: Gradle) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + @ExcludeJacocoGenerated + @Deprecated("Deprecated") + override fun buildFinished(result: BuildResult) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionInjector.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionInjector.kt new file mode 100644 index 00000000..45cbda17 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionInjector.kt @@ -0,0 +1,353 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.execution + +import com.squareup.moshi.Moshi +import io.github.janbarari.gradle.analytics.data.DatabaseRepositoryImp +import io.github.janbarari.gradle.analytics.database.Database +import io.github.janbarari.gradle.analytics.domain.repository.DatabaseRepository +import io.github.janbarari.gradle.analytics.domain.usecase.SaveMetricUseCase +import io.github.janbarari.gradle.analytics.domain.usecase.SaveTemporaryMetricUseCase +import io.github.janbarari.gradle.analytics.metric.initializationprocess.update.UpdateInitializationProcessMetricUseCase +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.domain.model.Dependency +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.ModulesDependencyGraph +import io.github.janbarari.gradle.analytics.domain.usecase.UpsertModulesTimelineUseCase +import io.github.janbarari.gradle.analytics.metric.successbuildrate.create.CreateSuccessBuildRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.successbuildrate.update.UpdateSuccessBuildRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.cachehit.create.CreateCacheHitMetricUseCase +import io.github.janbarari.gradle.analytics.metric.cachehit.update.UpdateCacheHitMetricUseCase +import io.github.janbarari.gradle.analytics.metric.configurationprocess.create.CreateConfigurationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.configurationprocess.update.UpdateConfigurationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencydetails.create.CreateDependencyDetailsMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencydetails.update.UpdateDependencyDetailsMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.create.CreateDependencyResolveProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.update.UpdateDependencyResolveProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.executionprocess.create.CreateExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.executionprocess.update.UpdateExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.initializationprocess.create.CreateInitializationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.create.CreateModulesBuildHeatmapMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.update.UpdateModulesBuildHeatmapMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.create.CreateModulesCrashCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.update.UpdateModulesCrashCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.create.CreateModulesDependencyGraphMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.update.UpdateModulesDependencyGraphMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.create.CreateModulesExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.update.UpdateModulesExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.create.CreateModulesMethodCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.update.UpdateModulesMethodCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.create.CreateModulesSourceCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.update.UpdateModulesSourceCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.create.CreateModulesSourceSizeMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.update.UpdateModulesSourceSizeMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulestimeline.create.CreateModulesTimelineMetricUseCase +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.create.CreateNonCacheableTasksMetricUseCase +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.update.UpdateNonCacheableTasksMetricUseCase +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.create.CreateParallelExecutionRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.update.UpdateParallelExecutionRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.create.CreateOverallBuildProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.update.UpdateOverallBuildProcessMetricUseCase +import io.github.janbarari.gradle.extension.separateElementsWithSpace + +/** + * Dependency injector for [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionLogic]. + */ +@ExcludeJacocoGenerated +data class BuildExecutionInjector( + var databaseConfig: DatabaseConfig? = null, + var isCI: Boolean? = null, + var branch: String? = null, + var requestedTasks: List? = null, + var trackingBranches: List? = null, + var trackingTasks: List? = null, + var modules: List? = null, + var modulesDependencyGraph: ModulesDependencyGraph? = null, + var thirdPartyDependencies: List? = null, + var nonCachableTasks: List? = null +) + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideDatabase(): Database { + return Database(databaseConfig!!, isCI!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideMoshi(): Moshi { + return Moshi.Builder().build() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideDatabaseRepository(): DatabaseRepository { + return DatabaseRepositoryImp( + db = provideDatabase(), + branch = branch!!, + requestedTasks = requestedTasks!!.separateElementsWithSpace(), + moshi = provideMoshi() + ) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateInitializationMetricUseCase(): UpdateInitializationProcessMetricUseCase { + return UpdateInitializationProcessMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateConfigurationMetricUseCase(): UpdateConfigurationProcessMetricUseCase { + return UpdateConfigurationProcessMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateExecutionProcessMetricUseCase(): UpdateExecutionProcessMetricUseCase { + return UpdateExecutionProcessMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateOverallBuildProcessMetricUseCase(): UpdateOverallBuildProcessMetricUseCase { + return UpdateOverallBuildProcessMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesSourceCountMetricUseCase(): UpdateModulesSourceCountMetricUseCase { + return UpdateModulesSourceCountMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesMethodCountMetricUseCase(): UpdateModulesMethodCountMetricUseCase { + return UpdateModulesMethodCountMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateCacheHitMetricUseCase(): UpdateCacheHitMetricUseCase { + return UpdateCacheHitMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateSuccessBuildRateMetricUseCase(): UpdateSuccessBuildRateMetricUseCase { + return UpdateSuccessBuildRateMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateDependencyResolveProcessMetricUseCase(): UpdateDependencyResolveProcessMetricUseCase { + return UpdateDependencyResolveProcessMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateParallelExecutionRateMetricUseCase(): UpdateParallelExecutionRateMetricUseCase { + return UpdateParallelExecutionRateMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesExecutionProcessMetricUseCase(): UpdateModulesExecutionProcessMetricUseCase { + return UpdateModulesExecutionProcessMetricUseCase(provideDatabaseRepository(), modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesDependencyGraphMetricUseCase(): UpdateModulesDependencyGraphMetricUseCase { + return UpdateModulesDependencyGraphMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesBuildHeatmapMetricUseCase(): UpdateModulesBuildHeatmapMetricUseCase { + return UpdateModulesBuildHeatmapMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateDependencyDetailsMetricUseCase(): UpdateDependencyDetailsMetricUseCase { + return UpdateDependencyDetailsMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateNonCacheableTasksMetricUseCase(): UpdateNonCacheableTasksMetricUseCase { + return UpdateNonCacheableTasksMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesSourceSizeMetricUseCase(): UpdateModulesSourceSizeMetricUseCase { + return UpdateModulesSourceSizeMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpdateModulesCrashCountMetricUseCase(): UpdateModulesCrashCountMetricUseCase { + return UpdateModulesCrashCountMetricUseCase(provideDatabaseRepository(), modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideSaveMetricUseCase(): SaveMetricUseCase { + return SaveMetricUseCase( + provideDatabaseRepository(), + provideUpdateInitializationMetricUseCase(), + provideUpdateConfigurationMetricUseCase(), + provideUpdateExecutionProcessMetricUseCase(), + provideUpdateOverallBuildProcessMetricUseCase(), + provideUpdateModulesSourceCountMetricUseCase(), + provideUpdateModulesMethodCountMetricUseCase(), + provideUpdateCacheHitMetricUseCase(), + provideUpdateSuccessBuildRateMetricUseCase(), + provideUpdateDependencyResolveProcessMetricUseCase(), + provideUpdateParallelExecutionRateMetricUseCase(), + provideUpdateModulesExecutionProcessMetricUseCase(), + provideUpdateModulesDependencyGraphMetricUseCase(), + provideUpdateModulesBuildHeatmapMetricUseCase(), + provideUpdateDependencyDetailsMetricUseCase(), + provideUpdateNonCacheableTasksMetricUseCase(), + provideUpdateModulesSourceSizeMetricUseCase(), + provideUpdateModulesCrashCountMetricUseCase() + ) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideSaveTemporaryMetricUseCase(): SaveTemporaryMetricUseCase { + return SaveTemporaryMetricUseCase(provideDatabaseRepository()) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideUpsertModulesTimelineUseCase(): UpsertModulesTimelineUseCase { + return UpsertModulesTimelineUseCase( + moshi = provideMoshi(), + repo = provideDatabaseRepository() + ) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateInitializationProcessMetricUseCase(): CreateInitializationProcessMetricUseCase { + return CreateInitializationProcessMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateConfigurationProcessMetricUseCase(): CreateConfigurationProcessMetricUseCase { + return CreateConfigurationProcessMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateExecutionProcessMetricUseCase(): CreateExecutionProcessMetricUseCase { + return CreateExecutionProcessMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateOverallBuildProcessMetricUseCase(): CreateOverallBuildProcessMetricUseCase { + return CreateOverallBuildProcessMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesSourceCountMetricUseCase(): CreateModulesSourceCountMetricUseCase { + return CreateModulesSourceCountMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesMethodCountMetricUseCase(): CreateModulesMethodCountMetricUseCase { + return CreateModulesMethodCountMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateCacheHitMetricUseCase(): CreateCacheHitMetricUseCase { + return CreateCacheHitMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateSuccessBuildRateMetricUseCase(): CreateSuccessBuildRateMetricUseCase { + return CreateSuccessBuildRateMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateDependencyResolveProcessMetricUseCase(): CreateDependencyResolveProcessMetricUseCase { + return CreateDependencyResolveProcessMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateParallelExecutionRateMetricUseCase(): CreateParallelExecutionRateMetricUseCase { + return CreateParallelExecutionRateMetricUseCase() +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesExecutionProcessMetricUseCase(): CreateModulesExecutionProcessMetricUseCase { + return CreateModulesExecutionProcessMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesDependencyGraphMetricUseCase(): CreateModulesDependencyGraphMetricUseCase { + return CreateModulesDependencyGraphMetricUseCase(modulesDependencyGraph!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesTimelineMetricUseCase(): CreateModulesTimelineMetricUseCase { + return CreateModulesTimelineMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesBuildHeatmapMetricUseCase(): CreateModulesBuildHeatmapMetricUseCase { + return CreateModulesBuildHeatmapMetricUseCase(modules!!, modulesDependencyGraph!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateDependencyDetailsMetricUseCase(): CreateDependencyDetailsMetricUseCase { + return CreateDependencyDetailsMetricUseCase(thirdPartyDependencies!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateNonCacheableTasksMetricUseCase(): CreateNonCacheableTasksMetricUseCase { + return CreateNonCacheableTasksMetricUseCase(nonCachableTasks!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesSourceSizeMetricUseCase(): CreateModulesSourceSizeMetricUseCase { + return CreateModulesSourceSizeMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideCreateModulesCrashCountMetricUseCase(): CreateModulesCrashCountMetricUseCase { + return CreateModulesCrashCountMetricUseCase(modules!!) +} + +@ExcludeJacocoGenerated +fun BuildExecutionInjector.provideBuildExecutionLogic(): BuildExecutionLogic { + return BuildExecutionLogicImp( + databaseConfig = databaseConfig!!, + envCI = isCI!!, + trackingBranches = trackingBranches!!, + trackingTasks = trackingTasks!!, + requestedTasks = requestedTasks!!, + saveMetricUseCase = provideSaveMetricUseCase(), + saveTemporaryMetricUseCase = provideSaveTemporaryMetricUseCase(), + upsertModulesTimelineUseCase = provideUpsertModulesTimelineUseCase(), + provideCreateInitializationProcessMetricUseCase(), + provideCreateConfigurationProcessMetricUseCase(), + provideCreateExecutionProcessMetricUseCase(), + provideCreateOverallBuildProcessMetricUseCase(), + provideCreateModulesSourceCountMetricUseCase(), + provideCreateModulesMethodCountMetricUseCase(), + provideCreateCacheHitMetricUseCase(), + provideCreateSuccessBuildRateMetricUseCase(), + provideCreateDependencyResolveProcessMetricUseCase(), + provideCreateParallelExecutionRateMetricUseCase(), + provideCreateModulesExecutionProcessMetricUseCase(), + provideCreateModulesDependencyGraphMetricUseCase(), + provideCreateModulesTimelineMetricUseCase(), + provideCreateModulesBuildHeatmapMetricUseCase(), + provideCreateDependencyDetailsMetricUseCase(), + provideCreateNonCacheableTasksMetricUseCase(), + provideCreateModulesSourceSizeMetricUseCase(), + provideCreateModulesCrashCountMetricUseCase(), + ) +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogic.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogic.kt new file mode 100644 index 00000000..5c59caf3 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogic.kt @@ -0,0 +1,68 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.execution + +import io.github.janbarari.gradle.analytics.domain.model.TaskInfo + +/** + * Logics for [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService]. + */ +interface BuildExecutionLogic { + + /** + * Checks the current git branch exists in the project trackable branches. + */ + fun isBranchTrackable(): Boolean + + /** + * Checks the 'requested tasks' is exists on the project trackable tasks. + * + * Note: Every Gradle process started with a task(s). It is called 'requestedTasks'. + */ + fun isTaskTrackable(): Boolean + + /** + * Checks the 'requested tasks' is not the plugin custom tasks. + */ + fun isForbiddenTasksRequested(): Boolean + + /** + * Checks the database configuration is valid. + */ + fun isDatabaseConfigurationValid(): Boolean + + /** + * Since the build initialization, configuration, and execution process are separated + * and based on various situations they have their own lifecycle this method resets + * their static variables in heap memory. + */ + fun resetDependentServices() + + /** + * Once the build is finished, this method should be + * invoked by [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService] to start + * storing the build metrics. + */ + fun onExecutionFinished(executedTasks: Collection) + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogicImp.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogicImp.kt new file mode 100644 index 00000000..b9ab56c4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionLogicImp.kt @@ -0,0 +1,246 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.execution + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.domain.model.BuildInfo +import io.github.janbarari.gradle.analytics.domain.model.TaskInfo +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.analytics.domain.usecase.SaveMetricUseCase +import io.github.janbarari.gradle.analytics.domain.usecase.SaveTemporaryMetricUseCase +import io.github.janbarari.gradle.analytics.domain.usecase.UpsertModulesTimelineUseCase +import io.github.janbarari.gradle.analytics.metric.cachehit.create.CreateCacheHitMetricStage +import io.github.janbarari.gradle.analytics.metric.cachehit.create.CreateCacheHitMetricUseCase +import io.github.janbarari.gradle.analytics.metric.configurationprocess.create.CreateConfigurationProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.configurationprocess.create.CreateConfigurationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencydetails.create.CreateDependencyDetailsMetricStage +import io.github.janbarari.gradle.analytics.metric.dependencydetails.create.CreateDependencyDetailsMetricUseCase +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.create.CreateDependencyResolveProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.dependencyresolveprocess.create.CreateDependencyResolveProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.executionprocess.create.CreateExecutionProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.executionprocess.create.CreateExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.initializationprocess.create.CreateInitializationProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.initializationprocess.create.CreateInitializationProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.create.CreateModulesBuildHeatmapMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesbuildheatmap.create.CreateModulesBuildHeatmapMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.create.CreateModulesCrashCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulescrashcount.create.CreateModulesCrashCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.create.CreateModulesDependencyGraphMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesdependencygraph.create.CreateModulesDependencyGraphMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.create.CreateModulesExecutionProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesexecutionprocess.create.CreateModulesExecutionProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.create.CreateModulesMethodCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesmethodcount.create.CreateModulesMethodCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.create.CreateModulesSourceCountMetricStage +import io.github.janbarari.gradle.analytics.metric.modulesourcecount.create.CreateModulesSourceCountMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.create.CreateModulesSourceSizeMetricStage +import io.github.janbarari.gradle.analytics.metric.modulessourcesize.create.CreateModulesSourceSizeMetricUseCase +import io.github.janbarari.gradle.analytics.metric.modulestimeline.create.CreateModulesTimelineMetricStage +import io.github.janbarari.gradle.analytics.metric.modulestimeline.create.CreateModulesTimelineMetricUseCase +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.create.CreateNonCacheableTasksMetricStage +import io.github.janbarari.gradle.analytics.metric.noncacheabletasks.create.CreateNonCacheableTasksMetricUseCase +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.create.CreateOverallBuildProcessMetricStage +import io.github.janbarari.gradle.analytics.metric.overallbuildprocess.create.CreateOverallBuildProcessMetricUseCase +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.create.CreateParallelExecutionRateMetricStage +import io.github.janbarari.gradle.analytics.metric.paralleexecutionrate.create.CreateParallelExecutionRateMetricUseCase +import io.github.janbarari.gradle.analytics.metric.successbuildrate.create.CreateSuccessBuildRateMetricStage +import io.github.janbarari.gradle.analytics.metric.successbuildrate.create.CreateSuccessBuildRateMetricUseCase +import io.github.janbarari.gradle.analytics.reporttask.ReportAnalyticsTask +import io.github.janbarari.gradle.analytics.scanner.configuration.BuildConfigurationService +import io.github.janbarari.gradle.analytics.scanner.dependencyresolution.BuildDependencyResolutionService +import io.github.janbarari.gradle.analytics.scanner.initialization.BuildInitializationService +import io.github.janbarari.gradle.extension.isNotNull +import io.github.janbarari.gradle.extension.isNull +import io.github.janbarari.gradle.extension.separateElementsWithSpace +import io.github.janbarari.gradle.utils.ConsolePrinter +import io.github.janbarari.gradle.utils.DateTimeUtils +import io.github.janbarari.gradle.utils.GitUtils +import kotlinx.coroutines.runBlocking + +/** + * Implementation of [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionLogic]. + */ +class BuildExecutionLogicImp( + private val databaseConfig: DatabaseConfig, + private val envCI: Boolean, + private val trackingBranches: List, + private val trackingTasks: List, + private val requestedTasks: List, + private val saveMetricUseCase: SaveMetricUseCase, + private val saveTemporaryMetricUseCase: SaveTemporaryMetricUseCase, + private val upsertModulesTimelineUseCase: UpsertModulesTimelineUseCase, + private val createInitializationProcessMetricUseCase: CreateInitializationProcessMetricUseCase, + private val createConfigurationProcessMetricUseCase: CreateConfigurationProcessMetricUseCase, + private val createExecutionProcessMetricUseCase: CreateExecutionProcessMetricUseCase, + private val createOverallBuildProcessMetricUseCase: CreateOverallBuildProcessMetricUseCase, + private val createModulesSourceCountMetricUseCase: CreateModulesSourceCountMetricUseCase, + private val createModulesMethodCountMetricUseCase: CreateModulesMethodCountMetricUseCase, + private val createCacheHitMetricUseCase: CreateCacheHitMetricUseCase, + private val createSuccessBuildRateMetricUseCase: CreateSuccessBuildRateMetricUseCase, + private val createDependencyResolveProcessMetricUseCase: CreateDependencyResolveProcessMetricUseCase, + private val createParallelExecutionRateMetricUseCase: CreateParallelExecutionRateMetricUseCase, + private val createModulesExecutionProcessMetricUseCase: CreateModulesExecutionProcessMetricUseCase, + private val createModulesDependencyGraphMetricUseCase: CreateModulesDependencyGraphMetricUseCase, + private val createModulesTimelineMetricUseCase: CreateModulesTimelineMetricUseCase, + private val createModulesBuildHeatmapMetricUseCase: CreateModulesBuildHeatmapMetricUseCase, + private val createDependencyDetailsMetricUseCase: CreateDependencyDetailsMetricUseCase, + private val createNonCacheableTasksMetricUseCase: CreateNonCacheableTasksMetricUseCase, + private val createModulesSourceSizeMetricUseCase: CreateModulesSourceSizeMetricUseCase, + private val createModulesCrashCountMetricUseCase: CreateModulesCrashCountMetricUseCase, +) : BuildExecutionLogic { + + override fun onExecutionFinished(executedTasks: Collection) = runBlocking { + if (isForbiddenTasksRequested()) return@runBlocking + + if (!isDatabaseConfigurationValid()) return@runBlocking + + if (!isTaskTrackable()) return@runBlocking + + if (!isBranchTrackable()) return@runBlocking + + val isSuccessful = executedTasks.all { it.isSuccessful } + val failure = executedTasks.find { !it.isSuccessful && it.failures.isNotNull() }?.failures + + val buildInfo = BuildInfo( + createdAt = System.currentTimeMillis(), + startedAt = BuildInitializationService.STARTED_AT, + initializedAt = BuildInitializationService.INITIALIZED_AT, + configuredAt = BuildConfigurationService.CONFIGURED_AT, + finishedAt = System.currentTimeMillis(), + dependenciesResolveInfo = BuildDependencyResolutionService.dependenciesResolveInfo.values, + executedTasks = executedTasks.toList(), + branch = GitUtils.currentBranch(), + gitHeadCommitHash = GitUtils.getHeadCommitHash(), + requestedTasks = requestedTasks, + isSuccessful = isSuccessful, + failure = failure + ) + + resetDependentServices() + + val buildMetric = + CreateMetricPipeline(CreateInitializationProcessMetricStage(buildInfo, createInitializationProcessMetricUseCase)) + .addStage(CreateConfigurationProcessMetricStage(buildInfo, createConfigurationProcessMetricUseCase)) + .addStage(CreateExecutionProcessMetricStage(buildInfo, createExecutionProcessMetricUseCase)) + .addStage(CreateOverallBuildProcessMetricStage(buildInfo, createOverallBuildProcessMetricUseCase)) + .addStage(CreateModulesSourceCountMetricStage(createModulesSourceCountMetricUseCase)) + .addStage(CreateModulesMethodCountMetricStage(createModulesMethodCountMetricUseCase)) + .addStage(CreateCacheHitMetricStage(buildInfo, createCacheHitMetricUseCase)) + .addStage(CreateSuccessBuildRateMetricStage(buildInfo, createSuccessBuildRateMetricUseCase)) + .addStage(CreateDependencyResolveProcessMetricStage(buildInfo, createDependencyResolveProcessMetricUseCase)) + .addStage(CreateParallelExecutionRateMetricStage(buildInfo, createParallelExecutionRateMetricUseCase)) + .addStage(CreateModulesExecutionProcessMetricStage(buildInfo, createModulesExecutionProcessMetricUseCase)) + .addStage(CreateModulesDependencyGraphMetricStage(createModulesDependencyGraphMetricUseCase)) + .addStage(CreateModulesTimelineMetricStage(buildInfo, createModulesTimelineMetricUseCase)) + .addStage(CreateModulesBuildHeatmapMetricStage(createModulesBuildHeatmapMetricUseCase)) + .addStage(CreateDependencyDetailsMetricStage(createDependencyDetailsMetricUseCase)) + .addStage(CreateNonCacheableTasksMetricStage(buildInfo, createNonCacheableTasksMetricUseCase)) + .addStage(CreateModulesSourceSizeMetricStage(createModulesSourceSizeMetricUseCase)) + .addStage(CreateModulesCrashCountMetricStage(buildInfo, createModulesCrashCountMetricUseCase)) + .execute( + BuildMetric( + buildInfo.branch, + buildInfo.requestedTasks, + buildInfo.createdAt, + buildInfo.gitHeadCommitHash + ) + ) + + saveTemporaryMetricUseCase.execute(buildMetric) + saveMetricUseCase.execute(buildMetric) + + if (buildMetric.modulesTimelineMetric.isNotNull()) + upsertModulesTimelineUseCase.execute(buildInfo.branch to buildMetric.modulesTimelineMetric!!) + + printBuildInfo(buildMetric) + } + + private fun printBuildInfo(buildMetric: BuildMetric) { + val requestedTasks = buildMetric.requestedTasks.separateElementsWithSpace() + val repoLink = "https://github.com/janbarari/gradle-analytics-plugin" + + var width = requestedTasks.length + 25 + if (width < 60) width = 60 + + ConsolePrinter(width).run { + printFirstLine() + printLine(left = "Gradle Analytics Plugin") + printBreakLine(char = '-') + printLine(left = "Requested Tasks:", right = requestedTasks) + printLine(left = "Branch:", right = buildMetric.branch) + printLine(left = "Head Commit Hash:", right = buildMetric.gitHeadCommitHash) + printBreakLine(char = '-') + printLine(left = "Initialization Process:", right = "${buildMetric.initializationProcessMetric?.median}ms") + printLine(left = "Configuration Process:", right = "${buildMetric.configurationProcessMetric?.median}ms") + printLine(left = "Dependency Resolve Process:", right = "${buildMetric.dependencyResolveProcessMetric?.median}ms") + printLine(left = "Execution Process:", right = "${buildMetric.executionProcessMetric?.median}ms") + printLine(left = "Overall Build Process:", right = "${buildMetric.overallBuildProcessMetric?.median}ms") + printLine(left = "Cache Hit:", right = "${buildMetric.cacheHitMetric?.rate}%") + printLine(left = "Parallel Execution Rate:", right = "${buildMetric.parallelExecutionRateMetric?.medianRate}%") + printBreakLine(char = '-') + printLine(left = "Datetime:", right = DateTimeUtils.formatToDateTime(buildMetric.createdAt)) + printBreakLine(char = '-') + printLine(left = "Made with ❤ for everyone") + printLine(left = repoLink) + printLine(right = "↖ Tap the ☆ button to support us") + printLastLine() + } + + } + + @ExcludeJacocoGenerated + override fun resetDependentServices() { + BuildInitializationService.reset() + BuildConfigurationService.reset() + BuildDependencyResolutionService.reset() + } + + override fun isDatabaseConfigurationValid(): Boolean { + //return false if local machine executed and the config is not set. + if (databaseConfig.local.isNull() && !envCI) { + return false + } + + //return false if CI machine executed and the config is not set. + if (databaseConfig.ci.isNull() && envCI) { + return false + } + + return true + } + + override fun isForbiddenTasksRequested(): Boolean { + return requestedTasks.contains(ReportAnalyticsTask.TASK_NAME) + } + + override fun isTaskTrackable(): Boolean { + val requestedTasks = requestedTasks.separateElementsWithSpace() + return trackingTasks.contains(requestedTasks) + } + + override fun isBranchTrackable(): Boolean { + return trackingBranches.contains(GitUtils.currentBranch()) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionService.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionService.kt new file mode 100644 index 00000000..65d68951 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/BuildExecutionService.kt @@ -0,0 +1,196 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.execution + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import io.github.janbarari.gradle.analytics.DatabaseConfig +import io.github.janbarari.gradle.analytics.GradleAnalyticsPluginConfig +import io.github.janbarari.gradle.analytics.domain.model.Dependency +import io.github.janbarari.gradle.analytics.domain.model.Module +import io.github.janbarari.gradle.analytics.domain.model.ModulesDependencyGraph +import io.github.janbarari.gradle.analytics.domain.model.TaskInfo +import io.github.janbarari.gradle.analytics.scanner.configuration.BuildConfigurationService +import io.github.janbarari.gradle.analytics.scanner.initialization.BuildInitializationService +import io.github.janbarari.gradle.utils.GitUtils +import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Property +import org.gradle.api.services.BuildService +import org.gradle.api.services.BuildServiceParameters +import org.gradle.tooling.Failure +import org.gradle.tooling.events.FailureResult +import org.gradle.tooling.events.FinishEvent +import org.gradle.tooling.events.OperationCompletionListener +import org.gradle.tooling.events.OperationDescriptor +import org.gradle.tooling.events.SkippedResult +import org.gradle.tooling.events.SuccessResult +import org.gradle.tooling.events.task.TaskFailureResult +import org.gradle.tooling.events.task.TaskFinishEvent +import org.gradle.tooling.events.task.TaskSuccessResult +import java.util.concurrent.ConcurrentLinkedQueue + +/** + * Tracks the task's execution information. + */ +@ExcludeJacocoGenerated +abstract class BuildExecutionService : BuildService, OperationCompletionListener, AutoCloseable { + + interface Params : BuildServiceParameters { + val databaseConfig: Property + val envCI: Property + val requestedTasks: ListProperty + val trackingTasks: ListProperty + val trackingBranches: ListProperty + val modules: ListProperty + val modulesDependencyGraph: Property + val dependencies: ListProperty + val nonCachableTasks: ListProperty + } + + private val executedTasks: ConcurrentLinkedQueue = ConcurrentLinkedQueue() + + init { + assignStartTimestampIfProcessSkipped() + assignInitializationTimestampIfProcessSkipped() + assignConfigurationTimestampIfProcessSkipped() + } + + /** + * If the build initialization is reused by configuration-cache, then the + * [io.github.janbarari.gradle.analytics.scanner.initialization.BuildInitializationService] won't + * register to the project and the start time won't assign. + */ + private fun assignStartTimestampIfProcessSkipped() { + if (BuildInitializationService.STARTED_AT == 0L) { + BuildInitializationService.STARTED_AT = System.currentTimeMillis() + } + } + + /** + * If the build initialization is reused by configuration-cache, then the + * [io.github.janbarari.gradle.analytics.scanner.initialization.BuildInitializationService] won't + * register to the project and the initialization time won't assign. + */ + private fun assignInitializationTimestampIfProcessSkipped() { + if (BuildInitializationService.INITIALIZED_AT == 0L) { + BuildInitializationService.INITIALIZED_AT = System.currentTimeMillis() + } + } + + /** + * If the build configuration is reused by configuration-cache, then the + * [io.github.janbarari.gradle.analytics.scanner.configuration.BuildConfigurationService] won't + * register to the project and the configuration time won't assign. + */ + private fun assignConfigurationTimestampIfProcessSkipped() { + if (BuildConfigurationService.CONFIGURED_AT == 0L) { + BuildConfigurationService.CONFIGURED_AT = System.currentTimeMillis() + } + } + + /** + * Called when each task execution is finished. + * @param event Task finish event + */ + @ExcludeJacocoGenerated + override fun onFinish(event: FinishEvent?) { + if (event is TaskFinishEvent) { + var dependencies: List? = null + var isSuccessful = false + var isSkipped = false + var failures: List? = null + var isIncremental = false + var isFromCache = false + var isUpToDate = false + var executionReasons: List? = null + + runCatching { + dependencies = event.descriptor.dependencies.toList() + } + + when (event.result) { + is FailureResult -> { + val result = event.result as TaskFailureResult + failures = result.failures + isIncremental = result.isIncremental + executionReasons = result.executionReasons + } + + is SuccessResult -> { + isSuccessful = true + val result = event.result as TaskSuccessResult + isIncremental = result.isIncremental + isFromCache = result.isFromCache + isUpToDate = result.isUpToDate + executionReasons = result.executionReasons + } + + is SkippedResult -> { + isSuccessful = true + isSkipped = true + } + } + + executedTasks.add( + TaskInfo( + startedAt = event.result.startTime, + finishedAt = event.result.endTime, + path = event.descriptor.taskPath, + displayName = event.descriptor.displayName, + name = event.descriptor.name, + isSuccessful = isSuccessful, + failures = failures, + dependencies = dependencies, + isIncremental = isIncremental, + isFromCache = isFromCache, + isUpToDate = isUpToDate, + isSkipped = isSkipped, + executionReasons = executionReasons + ) + ) + } + } + + /** + * Called once the build execution process finished. + */ + @ExcludeJacocoGenerated + override fun close() { + BuildExecutionInjector( + databaseConfig = parameters.databaseConfig.get(), + isCI = parameters.envCI.get(), + branch = GitUtils.currentBranch(), + requestedTasks = parameters.requestedTasks.get(), + trackingBranches = parameters.trackingBranches.get(), + trackingTasks = parameters.trackingTasks.get(), + modules = parameters.modules.get(), + modulesDependencyGraph = parameters.modulesDependencyGraph.get(), + thirdPartyDependencies = parameters.dependencies.get(), + nonCachableTasks = parameters.nonCachableTasks.get() + ).apply { + provideBuildExecutionLogic().onExecutionFinished(executedTasks) + }.also { + executedTasks.clear() + } + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/CreateMetricPipeline.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/CreateMetricPipeline.kt new file mode 100644 index 00000000..4b63b7e1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/execution/CreateMetricPipeline.kt @@ -0,0 +1,29 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.execution + +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric +import io.github.janbarari.gradle.core.Pipeline +import io.github.janbarari.gradle.core.Stage + +class CreateMetricPipeline(firstStage: Stage): Pipeline(firstStage) diff --git a/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/initialization/BuildInitializationService.kt b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/initialization/BuildInitializationService.kt new file mode 100644 index 00000000..3f9f7af6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/analytics/scanner/initialization/BuildInitializationService.kt @@ -0,0 +1,102 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.analytics.scanner.initialization + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.BuildResult +import org.gradle.api.Project +import org.gradle.api.ProjectEvaluationListener +import org.gradle.api.ProjectState +import org.gradle.api.initialization.Settings +import org.gradle.api.internal.GradleInternal +import org.gradle.api.invocation.Gradle +import org.gradle.internal.InternalBuildListener +import org.gradle.internal.scan.time.BuildScanBuildStartedTime + +/** + * Track and holds the build start and initialization finish timestamp to use by + * [io.github.janbarari.gradle.analytics.scanner.execution.BuildExecutionService]. + */ +class BuildInitializationService( + private val gradle: Gradle +) : InternalBuildListener, ProjectEvaluationListener { + + companion object { + var STARTED_AT: Long = 0L + var INITIALIZED_AT: Long = 0L + + fun reset() { + STARTED_AT = 0L + INITIALIZED_AT = 0L + } + } + + init { + reset() + } + + override fun beforeEvaluate(project: Project) { + assignInitializationTimestamp() + } + + override fun afterEvaluate(project: Project, state: ProjectState) { + assignInitializationTimestamp() + } + + private fun assignInitializationTimestamp() { + if (INITIALIZED_AT == 0L) { + INITIALIZED_AT = System.currentTimeMillis() + } + } + + @ExcludeJacocoGenerated + override fun settingsEvaluated(settings: Settings) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + @ExcludeJacocoGenerated + override fun projectsLoaded(gradle: Gradle) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + @ExcludeJacocoGenerated + override fun projectsEvaluated(gradle: Gradle) { + STARTED_AT = getStartTimestamp() + } + + @ExcludeJacocoGenerated + @Deprecated("Deprecated") + override fun buildFinished(result: BuildResult) { + // Added because gradle allows when InternalBuildListener.kt is implemented in the service class. + } + + /** + * Returns the build start timestamp from [org.gradle.internal.scan.time.BuildScanBuildStartedTime]. + */ + @ExcludeJacocoGenerated + private fun getStartTimestamp(): Long { + val buildStartedTimeService = (gradle as GradleInternal).services.get(BuildScanBuildStartedTime::class.java) + return buildStartedTimeService?.buildStartedTime ?: System.currentTimeMillis() + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/Pipeline.kt b/src/main/kotlin/io/github/janbarari/gradle/core/Pipeline.kt new file mode 100644 index 00000000..1628b2d1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/Pipeline.kt @@ -0,0 +1,46 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +/** + * Pipeline design pattern main class. + */ +open class Pipeline(firstStage: Stage) { + + val currentStage: Stage = firstStage + + fun addStage(newStage: Stage): Pipeline { + return Pipeline( + object : Stage { + override suspend fun process(input: I): K { + return newStage.process(currentStage.process(input)) + } + } + ) + } + + suspend fun execute(input: I): O { + return currentStage.process(input) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/Stage.kt b/src/main/kotlin/io/github/janbarari/gradle/core/Stage.kt new file mode 100644 index 00000000..25fbc9b6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/Stage.kt @@ -0,0 +1,30 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +/** + * Pipeline design pattern stage interface. + */ +interface Stage { + suspend fun process(input: I): O +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/Triple.kt b/src/main/kotlin/io/github/janbarari/gradle/core/Triple.kt new file mode 100644 index 00000000..d818deb6 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/Triple.kt @@ -0,0 +1,32 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +/** + * Custom generic data class to hold 3 object together. + */ +open class Triple( + val first: A, + val second: B, + val third: C +) : java.io.Serializable diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/UseCase.kt b/src/main/kotlin/io/github/janbarari/gradle/core/UseCase.kt new file mode 100644 index 00000000..90e4eec1 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/UseCase.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import kotlinx.coroutines.Dispatchers +import kotlin.coroutines.CoroutineContext + +@ExcludeJacocoGenerated +abstract class UseCase( + val dispatcher: CoroutineContext = Dispatchers.IO +) { + abstract suspend fun execute(input: INPUT): OUTPUT +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoInput.kt b/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoInput.kt new file mode 100644 index 00000000..d75f9da4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoInput.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import kotlinx.coroutines.Dispatchers +import kotlin.coroutines.CoroutineContext + +@ExcludeJacocoGenerated +abstract class UseCaseNoInput( + val dispatcher: CoroutineContext = Dispatchers.IO +) { + abstract suspend fun execute(): OUTPUT +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoOutput.kt b/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoOutput.kt new file mode 100644 index 00000000..bec32ad3 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/core/UseCaseNoOutput.kt @@ -0,0 +1,34 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.core + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import kotlinx.coroutines.Dispatchers +import kotlin.coroutines.CoroutineContext + +@ExcludeJacocoGenerated +abstract class UseCaseNoOutput( + val dispatcher: CoroutineContext = Dispatchers.IO +) { + abstract suspend fun execute(input: INPUT) +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/BuildMetricExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/BuildMetricExtensions.kt new file mode 100644 index 00000000..1da2f1a2 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/BuildMetricExtensions.kt @@ -0,0 +1,194 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint +import io.github.janbarari.gradle.analytics.domain.model.metric.BuildMetric + +/** + * Map the InitializationProcessMetric collection to TimespanPoint median collection. + */ +fun List.mapToInitializationMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.initializationProcessMetric!!.median, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the InitializationProcessMetric collection to TimespanPoint mean collection. + */ +fun List.mapToInitializationMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.initializationProcessMetric!!.mean, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the ConfigurationProcessMetric collection to TimespanPoint median collection. + */ +fun List.mapToConfigurationMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.configurationProcessMetric!!.median, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the ConfigurationProcessMetric collection to TimespanPoint mean collection. + */ +fun List.mapToConfigurationMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.configurationProcessMetric!!.mean, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the ExecutionProcessMetric collection to TimespanPoint median collection. + */ +fun List.mapToExecutionMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.executionProcessMetric!!.median / 1000L, + from = it.createdAt, + to = null + ) + } +} +/** + * Map the ExecutionProcessMetric collection to TimespanPoint mean collection. + */ +fun List.mapToExecutionMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.executionProcessMetric!!.mean / 1000L, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map OverallBuildProcessMetric collection to TimespanPoint median collection. + */ +fun List.mapToOverallBuildProcessMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.overallBuildProcessMetric!!.median / 1000L, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the OverallBuildProcessMetric collection to TimespanPoint mean collection. + */ +fun List.mapToOverallBuildProcessMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.overallBuildProcessMetric!!.mean / 1000L, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the SuccessBuildRateProcess Metric collection to TimespanPoint median collection. + */ +fun List.mapToSuccessBuildRateMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.successBuildRateMetric!!.medianRate.toLong(), + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the SuccessBuildRateProcess Metric collection to TimespanPoint mean collection. + */ +fun List.mapToSuccessBuildRateMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.successBuildRateMetric!!.meanRate.toLong(), + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the DependencyResolveProcessMetric Metric collection to TimespanPoint median collection. + */ +fun List.mapToDependencyResolveMedianTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.dependencyResolveProcessMetric!!.median, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the DependencyResolveProcessMetric Metric collection to TimespanPoint mean collection. + */ +fun List.mapToDependencyResolveMeanTimespanChartPoints(): List { + return map { + TimespanPoint( + value = it.dependencyResolveProcessMetric!!.mean, + from = it.createdAt, + to = null + ) + } +} + +/** + * Map the ParallelExecutionRateMetric Metric collection to TimespanPoint median collection. + */ +fun List.mapToParallelExecutionRateMedianTimespanPoints(): List { + return map { + TimespanPoint( + value = it.parallelExecutionRateMetric!!.medianRate, + from = it.createdAt, + to = null + ) + } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/ChartPointExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/ChartPointExtensions.kt new file mode 100644 index 00000000..86f8cfb7 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/ChartPointExtensions.kt @@ -0,0 +1,39 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint + +/** + * Get maximum value of ChartPoint collection. + */ +fun List.maxValue(): Long { + return this.maxOf { it.value } +} + +/** + * Get minimum value of ChartPoint collection. + */ +fun List.minValue(): Long { + return this.minOf { it.value } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/FloatExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/FloatExtensions.kt new file mode 100644 index 00000000..69c52937 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/FloatExtensions.kt @@ -0,0 +1,50 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import java.math.BigDecimal +import java.math.RoundingMode + +/** + * Round the given float number. + * + * @param decimalsCount The fraction numbers count, Default is Two. + */ +fun Float.round(decimalsCount: Int = 2): Float { + val bd = BigDecimal(this.toDouble()) + return bd.setScale(decimalsCount, RoundingMode.FLOOR).toFloat() +} + +/** + * Check is the given Long value is zero. + */ +fun Float.isZero(): Boolean { + return this == 0F +} + +/** + * Check is the given Long value is > 0. + */ +fun Float.isBiggerThanZero(): Boolean { + return this > 0F +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/GeneralExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/GeneralExtensions.kt new file mode 100644 index 00000000..dacdaae5 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/GeneralExtensions.kt @@ -0,0 +1,43 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Invoke function body when the value is true. + * + * This function helps to reduce the code complexity and increase the development speed by removing the + * boilerplate if condition for booleans. + */ +fun Boolean.whenTrue(block: Boolean.() -> Unit) { + if (this) block(true) +} + +/** + * Invoke function body when the value is false. + * + * This function helps to reduce the code complexity and increase the development speed by removing the + * boilerplate if condition for booleans. + */ +fun Boolean.whenFalse(block: Boolean.() -> Unit) { + if (!this) block(false) +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/GradleExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/GradleExtensions.kt new file mode 100644 index 00000000..9fc28b47 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/GradleExtensions.kt @@ -0,0 +1,99 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import io.github.janbarari.gradle.ExcludeJacocoGenerated +import org.gradle.api.DefaultTask +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.artifacts.ProjectDependency +import org.gradle.api.invocation.Gradle +import org.gradle.api.provider.Provider + +/** + * Get the Gradle requested tasks list. `requestedTasks` are the tasks that CLI + * sent them to Gradle to start the build process. + */ +@ExcludeJacocoGenerated +fun Gradle.getRequestedTasks(): List { + return startParameter.taskNames +} + +/** + * Get the 'CI' value provider from the system environments. + */ +@ExcludeJacocoGenerated +fun Project.envCI(): Provider { + return providers.environmentVariable("CI").forUseAtConfigurationTime() +} + +/** + * Check is project dependency has dependency to ProjectDependency type. + */ +@ExcludeJacocoGenerated +fun Project.isDependingOnOtherProject(): Boolean { + return configurations.any { configuration -> configuration.dependencies.any { it is ProjectDependency } } +} + +/** + * Register the given task. + */ +@ExcludeJacocoGenerated +inline fun Project.registerTask(name: String, crossinline block: T.() -> Unit) { + project.tasks.register(name, T::class.java) { + it.also(block) + } +} + +/** + * Check if the given Task is cacheable. + */ +fun Task.isCacheable(): Boolean { + return this.outputs.hasOutput && this.inputs.hasInputs +} + +/** + * Get task dependencies. + */ +fun Task.getSafeTaskDependencies(): Set { + return try { + taskDependencies.getDependencies(this) + } catch (e: Throwable) { + emptySet() + } +} + +/** + * Filter non-cacheable tasks from the given task collection. + */ +fun Collection.getNonCacheableTasks(): Set { + val nonCacheableTasks = mutableSetOf() + forEach { task -> + task.getSafeTaskDependencies() + .filter { !it.isCacheable() } + .whenNotEmpty { + nonCacheableTasks.addAll(this.map { it.path }) + } + } + return nonCacheableTasks +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/IntExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/IntExtensions.kt new file mode 100644 index 00000000..5bc7b9c3 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/IntExtensions.kt @@ -0,0 +1,78 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Calculate the current value difference as percentage from the target value. + * + * Example: + * val a = 10 + * val b = 100 + * a.diffPercentageOf(b) equals 100%+ (b is 100%+ of a) + */ +fun Int.diffPercentageOf(target: Int): Float { + if(this == 0) return 0F + val result = ((target.toFloat() - this.toFloat()) / this.toFloat()) * 100F + return result.round() +} + +/** + * Calculate the current value difference as percentage from the target value. + * + * Example: + * val a = 10 + * val b = 100 + * a.diffPercentageOf(b) equals 100%+ (b is 100%+ of a) + */ +fun Long.diffPercentageOf(target: Long): Float { + if(this == 0L) return 0F + val result = ((target.toFloat() - this.toFloat()) / this.toFloat()) * 100F + return result.round() +} + +/** + * Calculate the current value coverage from the target value. + * + * Example: + * val a = 10 + * val b = 100 + * a.toPercentageOf(b) equals 10% (a is 10% of b). + */ +fun Int.toPercentageOf(target: Int): Float { + if (target == 0) return 0f + return ((this.toFloat() * 100F) / target).round() +} + +/** + * Calculate the current value coverage from the target value. + * + * Example: + * val a = 10 + * val b = 100 + * a.toPercentageOf(b) equals 10% (a is 10% of b). + */ +fun Long.toPercentageOf(target: Long): Float { + if (target == 0L) return 0F + return ((this.toFloat() * 100F) / target).round() +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/ListExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/ListExtensions.kt new file mode 100644 index 00000000..064bf428 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/ListExtensions.kt @@ -0,0 +1,142 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Iterates across the list items, but this function allows each iteration to + * add and remove items from the list. + */ +fun Collection.whenEach(block: T.() -> Unit) { + val iterator = this.iterator() + while (iterator.hasNext()) { + block(iterator.next()) + } +} + +/** + * Map the Long list to Int list. + */ +fun List.toIntList(): List { + return this.map { it.toInt() } +} + +/** + * Check is the given list has more items than dedicated count. + */ +fun List.isBiggerThan(count: Int): Boolean { + return this.size > count +} + +/** + * Invoke the function body if the given list has no items. + */ +inline fun List.whenEmpty(block: Collection.() -> Unit): List { + if (isEmpty()) block(this) + return this +} + +/** + * Invoke the function body if the given list is not empty. + */ +inline fun List.whenNotEmpty(block: Collection.() -> Unit): List { + if (isNotEmpty()) block(this) + return this +} + +/** + * Invoke the function body if the given set is not empty. + */ +inline fun Set.whenNotEmpty(block: Collection.() -> Unit): Set { + if (isNotEmpty()) block(this) + return this +} + +/** + * Get the first index value. + */ +val List.firstIndex: Int + get() = 0 + +/** + * Check is the given list has only a single item. + */ +fun List.hasSingleItem(): Boolean { + return this.size == 1 +} + +/** + * Check is the given list has multiple items. + */ +fun List.hasMultipleItems(): Boolean { + return this.size > 1 +} + +/** + * Convert list of string to comma separated string. + */ +fun List.toArrayString(): String { + val labels = StringBuilder() + labels.append("[") + whenEach { + labels.append("\"$this\"") + .append(",") + } + if (labels.length > 1) { + // because the last item should not have ',' separator. + labels.removeLastChar() + } + labels.append("]") + return labels.toString() +} + +/** + * I was refactoring my Gradle plugin source code and I saw that I use + * "map{}" and "list duplication" to create the same list with some modifications, + * I find out this is a bug because it: + * + * 1- leaks the performance by "object recreation" and "memory duplication". + * 2- Decreases the readability by putting the modification operation outside of collection operators. + * 3- Decreases the extensibility because it is not a collection operator, so can't use a chain with other collection operators. + * + * Then I decided to create a modification operator for a list to manipulate items in place. + * Less code + * More extensibility + * Better performance + */ +public inline fun Iterable.modify(modification: T.() -> Unit): Iterable { + for (item in this) + item.apply(modification) + return this +} + +public inline fun Collection.modify(modification: T.() -> Unit): Collection { + for (item in this) + item.apply(modification) + return this +} + +public inline fun List.modify(modification: T.() -> Unit): List { + for (item in this) + item.apply(modification) + return this +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/LongExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/LongExtensions.kt new file mode 100644 index 00000000..b88356da --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/LongExtensions.kt @@ -0,0 +1,51 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Check is the given Long value is zero. + */ +fun Long.isZero(): Boolean { + return this == 0L +} + +/** + * Check is the given long value is >= dedicated target value. + */ +fun Long.isBiggerEquals(target: Long): Boolean { + return this >= target +} + +/** + * Check is the given long value is > dedicated target value. + */ +fun Long.isBigger(target: Long): Boolean { + return this > target +} + +/** + * Convert given milliseconds to seconds. + */ +fun Long.millisToSeconds(): Long { + return this / 1000L +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/NullExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/NullExtensions.kt new file mode 100644 index 00000000..230f1a79 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/NullExtensions.kt @@ -0,0 +1,51 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Check if the object is null. + */ +fun Any?.isNull(): Boolean { + return this == null +} + +/** + * Check if the object is not null. + */ +fun Any?.isNotNull(): Boolean { + return this != null +} + +/** + * Invoke the lambda function if the object is NOT null. + */ +fun T?.whenNotNull(block: T.() -> Unit) { + if (this != null) block(this) +} + +/** + * Invoke the lambda function if the object is null. + */ +fun T?.whenNull(block: () -> Unit) { + if(this == null) block() +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/PathExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/PathExtensions.kt new file mode 100644 index 00000000..706556bc --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/PathExtensions.kt @@ -0,0 +1,57 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import java.nio.file.Files +import java.nio.file.Path +import kotlin.io.path.extension +import kotlin.io.path.pathString + +/** + * Check is given path is Kotlin/Java source file. + */ +fun Path.isSourcePath(): Boolean { + return (pathString.contains("src/main/java") || pathString.contains("src/main/kotlin")) + && (extension == "kt" || extension == "java") + && Files.isRegularFile(this) +} + +/** + * Check is the given path is Kotlin file. + */ +fun Path.isKotlinFile(): Boolean = extension == "kt" + +/** + * Check is the given path is Java file. + */ +fun Path.isJavaFile(): Boolean = extension == "java" + +/** + * Get given path file content as string. + */ +fun Path.readText(): String { + return toFile() + .inputStream() + .bufferedReader() + .use { it.readText() } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/ResourceExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/ResourceExtensions.kt new file mode 100644 index 00000000..4bde6114 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/ResourceExtensions.kt @@ -0,0 +1,52 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import java.io.InputStream +import java.net.URL + +/** + * Due to https://bugs.openjdk.java.net/browse/JDK-6947916 and https://bugs.openjdk.java.net/browse/JDK-8155607, + * it is necessary to disallow caches to maintain stability on JDK 8 and 11 (and possibly more). + * Otherwise, simultaneous invocations of Detekt in the same VM can fail spuriously. A similar bug is referenced + * in https://github.com/detekt/detekt/issues/3396. The performance regression is likely unnoticeable. + * Due to https://github.com/detekt/detekt/issues/4332 it is included for all JDKs. + */ +fun URL.openSafeStream(): InputStream { + return openConnection().apply { useCaches = false }.getInputStream() +} + +fun Class.getSafeResourceAsStream(name: String): InputStream? { + return getResource(name)?.openSafeStream() +} + +/** + * Get the given file content as string. + */ +fun Any.getTextResourceContent(fileName: String): String { + return javaClass.getResource("/$fileName")!! + .openSafeStream() + .bufferedReader() + .use { it.readText() } +} + diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/StringExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/StringExtensions.kt new file mode 100644 index 00000000..bfae4135 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/StringExtensions.kt @@ -0,0 +1,59 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +/** + * Check the given string has any space. + */ +fun String.hasSpace(): Boolean { + return this.contains(" ") +} + +/** + * Remove the latest character of given string. + */ +fun String.removeLast(): String { + return substring(0, length - 1) +} + +/** + * Convert the given path string to real path. + */ +fun String.toRealPath(): String { + if (endsWith("/")) { + return removeLast().toRealPath() + } + return this +} + +fun List.separateElementsWithSpace(): String { + return this.joinToString(separator = " ") +} + +/** + * Remove the latest character of given StringBuilder. + */ +fun StringBuilder.removeLastChar() { + if (isNotEmpty()) + deleteCharAt(length - 1) +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/extension/TimespanChartPointExtensions.kt b/src/main/kotlin/io/github/janbarari/gradle/extension/TimespanChartPointExtensions.kt new file mode 100644 index 00000000..1ba52934 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/extension/TimespanChartPointExtensions.kt @@ -0,0 +1,96 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.extension + +import io.github.janbarari.gradle.analytics.domain.model.ChartPoint +import io.github.janbarari.gradle.analytics.domain.model.TimespanPoint +import io.github.janbarari.gradle.utils.DateTimeUtils +import io.github.janbarari.gradle.utils.MathUtils + +/** + * Minimize TimespanPoint collection. + */ +fun List.minimize(targetSize: Int): List { + return if (size > targetSize) + calculatePointsMean(this).minimize(targetSize) + else this +} + +private fun calculatePointsMean(values: List): List { + if (values.isEmpty()) return values + + val mean = arrayListOf() + val size = values.size + var nextIndex = 0 + + for (i in values.indices) { + if (i < nextIndex) continue + + if (i + 1 >= size) { + mean.add(values[i]) + } else { + var finishedAt = values[i + 1].to + if (finishedAt.isNull()) finishedAt = values[i + 1].from + + mean.add( + TimespanPoint( + value = MathUtils.longMean(values[i].value, values[i + 1].value), + from = values[i].from, + to = finishedAt + ) + ) + + nextIndex = i + 2 + } + } + + return mean +} + +/** + * Map TimespanPoint collection to ChartPoint collection. + */ +fun Collection.mapToChartPoints(): List { + return map { + val period = if (it.to.isNull()) + DateTimeUtils.format(it.from, "dd/MM") + else + DateTimeUtils.format(it.from, "dd/MM") + "-" + + DateTimeUtils.format(it.to!!, "dd/MM") + ChartPoint(it.value, period) + } +} + +/** + * Get the maximum value of TimespanPoint collection. + */ +fun List.maxValue(): Long { + return this.maxOf { it.value } +} + +/** + * Get the minimum value of TimespanPoint collection. + */ +fun List.minValue(): Long { + return this.minOf { it.value } +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/ConsolePrinter.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/ConsolePrinter.kt new file mode 100644 index 00000000..5b3e556a --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/ConsolePrinter.kt @@ -0,0 +1,85 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +/** + * Prints the messages in the terminal console in a visual format. + */ +class ConsolePrinter(private var blockCharWidth: Int) { + + init { + blockCharWidth += 1 + } + + fun printFirstLine(firstSpace: Boolean = true) { + val output = StringBuilder() + if (firstSpace) + output.append("\n") + output.append(" ") + output.append("┌") + (0..blockCharWidth).forEach { + output.append("─") + } + output.append("┐") + println(output.toString()) + } + + fun printLastLine() { + val output = StringBuilder() + output.append(" ") + output.append("└") + (0..blockCharWidth).forEach { _ -> + output.append("─") + } + output.append("┘") + println(output.toString()) + } + + fun printLine(left: String = "", right: String = "") { + val output = StringBuilder() + output.append(" ") + output.append("│") + output.append(" ") + output.append(left) + val remainingEmptyCharactersCount = blockCharWidth - left.length - right.length - 1 + (0 until remainingEmptyCharactersCount).forEach { _ -> + output.append(" ") + } + output.append(right) + output.append(" ") + output.append("│") + println(output.toString()) + } + + fun printBreakLine(char: Char = '─') { + val output = StringBuilder() + output.append(" ") + output.append("│") + (0..blockCharWidth).forEach { _ -> + output.append(char) + } + output.append("│") + println(output.toString()) + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/DateTimeUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/DateTimeUtils.kt new file mode 100644 index 00000000..edd7ab28 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/DateTimeUtils.kt @@ -0,0 +1,110 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +import java.time.Instant +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +import kotlin.math.floor + +/** + * A collection of datetime functions. + */ +object DateTimeUtils { + + const val ONE_DAY_IN_MILLIS = 86_400_000 + val DEFAULT_ZONE: ZoneId = ZoneId.of("UTC") + + /** + * Get the current day start time in milliseconds. + * + * Note: Timezone is UTC + */ + fun getDayStartMs(): Long { + return LocalDate.now().atStartOfDay(DEFAULT_ZONE).toEpochSecond() * 1000 + } + + /** + * Get the current day end time in milliseconds. + * + * Note: Timezone is UTC + */ + fun getDayEndMs(): Long { + return getDayStartMs() + ONE_DAY_IN_MILLIS + } + + /** + * Convert time in milliseconds to defined datetime pattern. + */ + fun format(timeInMs: Long, pattern: String): String { + return ZonedDateTime.ofInstant(Instant.ofEpochMilli(timeInMs), DEFAULT_ZONE) + .format(DateTimeFormatter.ofPattern(pattern)) + } + + /** + * Convert time in milliseconds to defined datetime pattern. + */ + fun convertDateToEpochMilli(date: String): Long { + return ZonedDateTime.parse("$date 00:00:00 AM UTC", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss a z")) + .toInstant() + .toEpochMilli() + } + + /** + * Convert time in milliseconds to `yyyy/MM/dd`. + */ + fun formatToDate(timeInMs: Long): String { + return format(timeInMs ,"yyyy/MM/dd") + } + + /** + * Convert time in milliseconds to `yyyy/MM/dd HH:mm a UTC`. + */ + fun formatToDateTime(timeInMs: Long): String { + return format(timeInMs, "yyyy/MM/dd HH:mm a 'UTC'") + } + + /** + * Convert time in seconds to the human-readable elapsed time. + */ + fun convertSecondsToHumanReadableTime(seconds: Long): String { + val numYears = floor(seconds / 31536000F).toInt() + val numDays = floor((seconds % 31536000) / 86400F).toInt() + val numHours = floor(((seconds % 31536000F) % 86400F) / 3600F).toInt() + val numMinutes = floor((((seconds % 31536000F) % 86400F) % 3600F) / 60F).toInt() + val numSeconds = (((seconds % 31536000) % 86400) % 3600) % 60 + if (numYears > 0) + return "${numYears}y ${numDays}d" + if (numDays > 0) + return "${numDays}d ${numHours}h" + if (numHours > 0) + return "${numHours}h ${numMinutes}m" + if (numMinutes > 0) + return "${numMinutes}m ${numSeconds}s" + return "${numSeconds}s" + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/FileUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/FileUtils.kt new file mode 100644 index 00000000..5a3f8c06 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/FileUtils.kt @@ -0,0 +1,49 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +import io.github.janbarari.gradle.extension.isSourcePath +import java.nio.file.Files +import java.nio.file.Path +import java.util.stream.Collectors +import kotlin.io.path.Path + +/** + * A collection of I/O functions. + */ +object FileUtils { + + /** + * Get all source files in the module path. + */ + fun getModuleSources(directory: String): List { + var sourcePaths: List + Files.walk(Path(directory)).use { stream -> + sourcePaths = stream.map { obj: Path -> obj.normalize() } + .filter { it.isSourcePath() } + .collect(Collectors.toList()) + } + return sourcePaths + } + +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/GitException.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/GitException.kt new file mode 100644 index 00000000..d5e6ae4b --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/GitException.kt @@ -0,0 +1,27 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +class GitException(msg: String): Throwable() { + override val message: String = msg +} diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/GitUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/GitUtils.kt new file mode 100644 index 00000000..fe0836f4 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/GitUtils.kt @@ -0,0 +1,66 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +/** + * A collection of git functions. + */ +object GitUtils { + + /** + * Get the git current branch name. + * + * @throws io.github.janbarari.gradle.utils.GitException if the command execution failed. + */ + @kotlin.jvm.Throws(GitException::class) + fun currentBranch(): String { + try { + return TerminalUtils.execCommand("git rev-parse --abbrev-ref HEAD") + } catch (e: IllegalStateException) { + throw GitException("Git command execution failed with message of ${e.message}") + } catch(e: RuntimeException) { + throw GitException("Git initialization not found with message of ${e.message}") + } + } + + /** + * Get the git HEAD commit hash. + * + * @throws io.github.janbarari.gradle.utils.GitException if the command execution failed. + */ + @kotlin.jvm.Throws(GitException::class) + fun getHeadCommitHash(): String { + try { + return TerminalUtils + .execCommand("git log --format=\"%H\" -n 1") + .replace("\"","") + } catch (e: IllegalStateException) { + throw GitException("Git command execution failed with message of ${e.message}") + } catch (e: RuntimeException) { + throw GitException("Git initialization not found with message of ${e.message}") + } + } + +} + + diff --git a/src/main/kotlin/io/github/janbarari/gradle/utils/HtmlUtils.kt b/src/main/kotlin/io/github/janbarari/gradle/utils/HtmlUtils.kt new file mode 100644 index 00000000..71858020 --- /dev/null +++ b/src/main/kotlin/io/github/janbarari/gradle/utils/HtmlUtils.kt @@ -0,0 +1,47 @@ +/** + * MIT License + * Copyright (c) 2022 Mehdi Janbarari (@janbarari) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package io.github.janbarari.gradle.utils + +import io.github.janbarari.gradle.extension.getTextResourceContent + +/** + * A collection of HTML functions. + */ +object HtmlUtils { + + /** + * Return the empty message as HTML render. + */ + fun renderMessage(message: String): String { + return "