{
  "metadata" : {
    "name" : "JetBrains / teamcity-unreal-engine-plugin",
    "description" : "Automate builds, testing, and deployment for Unreal Engine projects with TeamCity integration",
    "tooltip" : "",
    "logoLink" : "https://avatars.githubusercontent.com/JetBrains",
    "links" : [ {
      "label" : "GitHub Repo",
      "href" : "https://github.com/JetBrains/teamcity-unreal-engine-plugin.git"
    } ]
  },
  "metricsList" : {
    "metrics" : [ {
      "id" : "TOTAL_NUMBER_OF_FILES",
      "value" : 313,
      "description" : "Total number of files in the source folder"
    }, {
      "id" : "NUMBER_OF_FILES_MAIN",
      "value" : 200,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN",
      "value" : 8440,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KT",
      "value" : 162,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KT",
      "value" : 6882,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_XML",
      "value" : 6,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_XML",
      "value" : 626,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_JSP",
      "value" : 15,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_JSP",
      "value" : 379,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KTS",
      "value" : 8,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KTS",
      "value" : 322,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_TSX",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_TSX",
      "value" : 94,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_TS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_TS",
      "value" : 69,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_TOML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_TOML",
      "value" : 55,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_JS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_JS",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_CSS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST",
      "value" : 62,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST",
      "value" : 6586,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_KT",
      "value" : 62,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_KT",
      "value" : 6586,
      "description" : null
    }, {
      "id" : "TEST_VS_MAIN_LINES_OF_CODE_PERCENTAGE",
      "value" : 78.03,
      "description" : "Test / main code ratio"
    }, {
      "id" : "NUMBER_OF_FILES_GENERATED",
      "value" : 0,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_GENERATED",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT",
      "value" : 85,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_BAT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_BAT",
      "value" : 73,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_JS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_JS",
      "value" : 8,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_SH",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_SH",
      "value" : 4,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER",
      "value" : 12,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER",
      "value" : 567,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_MD",
      "value" : 6,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_MD",
      "value" : 503,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_JSON",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_JSON",
      "value" : 60,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_PROPERTIES",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_PROPERTIES",
      "value" : 3,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_SVG",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_SVG",
      "value" : 1,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER",
      "value" : 87,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER",
      "value" : 3681,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_KT",
      "value" : 63,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_KT",
      "value" : 2961,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_JSP",
      "value" : 15,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_JSP",
      "value" : 379,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_KTS",
      "value" : 116,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_TSX",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_TSX",
      "value" : 94,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_TS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_TS",
      "value" : 69,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_XML",
      "value" : 49,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_JS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_JS",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SERVER_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SERVER_EXT_CSS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_KOTLIN_DSL",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_KOTLIN_DSL",
      "value" : 530,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_KOTLIN_DSL_EXT_XML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_KOTLIN_DSL_EXT_XML",
      "value" : 530,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 14,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 14,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_GRADLE",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_GRADLE",
      "value" : 35,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_GRADLE_EXT_TOML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_GRADLE_EXT_TOML",
      "value" : 35,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE",
      "value" : 24,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE",
      "value" : 771,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_KT",
      "value" : 21,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_KT",
      "value" : 683,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_KTS",
      "value" : 58,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_TOML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_TOML",
      "value" : 20,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGIN_SDK_CORE_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_COMMON",
      "value" : 50,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_COMMON",
      "value" : 1722,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_COMMON_EXT_KT",
      "value" : 48,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_COMMON_EXT_KT",
      "value" : 1689,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_COMMON_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_COMMON_EXT_KTS",
      "value" : 23,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_COMMON_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_COMMON_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_BUILDSRC",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_BUILDSRC",
      "value" : 75,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KTS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KTS",
      "value" : 75,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_AGENT",
      "value" : 32,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_AGENT",
      "value" : 1612,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_AGENT_EXT_KT",
      "value" : 30,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_AGENT_EXT_KT",
      "value" : 1549,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_AGENT_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_AGENT_EXT_KTS",
      "value" : 36,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_AGENT_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_AGENT_EXT_XML",
      "value" : 27,
      "description" : null
    }, {
      "id" : "NUMBER_OF_DEPENDENCY_LINKS_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : "Number of anchor dependencies"
    }, {
      "id" : "NUMBER_OF_DEPENDENCIES_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_PLACES_WITH_CYCLIC_DEPENDENCIES_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_TODOS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_TODOS",
      "value" : 19,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_TODOS_EXT_KT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_TODOS_EXT_KT",
      "value" : 19,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 199,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 8421,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 161,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 6863,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 6,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 626,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_JSP",
      "value" : 15,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_JSP",
      "value" : 379,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 8,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 322,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_TSX",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_TSX",
      "value" : 94,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_TS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_TS",
      "value" : 69,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_TOML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_TOML",
      "value" : 55,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_CSS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "NEGLIGIBLE_RISK_FILE_SIZE_COUNT",
      "value" : 186,
      "description" : "Number of  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_COUNT",
      "value" : 11,
      "description" : "Number of  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_COUNT",
      "value" : 3,
      "description" : "Number of  files with 200 to 500 lines of code"
    }, {
      "id" : "HIGH_RISK_FILE_SIZE_COUNT",
      "value" : 0,
      "description" : "Number of  files with 500 to 1000 lines of code"
    }, {
      "id" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
      "value" : 0,
      "description" : "Number of  files with more than 1000 lines of code"
    }, {
      "id" : "NEGLIGIBLE_RISK_FILE_SIZE_LOC",
      "value" : 6100,
      "description" : "Lines of code in  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_LOC",
      "value" : 1390,
      "description" : "Lines of code in  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_LOC",
      "value" : 950,
      "description" : "Lines of code in  files with 200 to 500 lines of code"
    }, {
      "id" : "HIGH_RISK_FILE_SIZE_LOC",
      "value" : 0,
      "description" : "Lines of code in  files with 500 to 1000 lines of code"
    }, {
      "id" : "VERY_HIGH_RISK_FILE_SIZE_LOC",
      "value" : 0,
      "description" : "Lines of code in  files with more than 1000 lines of code"
    }, {
      "id" : "NUMBER_OF_UNITS",
      "value" : 102,
      "description" : "Number of units"
    }, {
      "id" : "LINES_OF_CODE_IN_UNITS",
      "value" : 1021,
      "description" : "Lines of code in units"
    }, {
      "id" : "LINES_OF_CODE_OUTSIDE_UNITS",
      "value" : 7419,
      "description" : "Lines of code in units"
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_LOC",
      "value" : 341,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 33.39862879529873,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_COUNT",
      "value" : 70,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_LOC",
      "value" : 215,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_PERCENTAGE",
      "value" : 21.057786483839372,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_COUNT",
      "value" : 15,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_LOC",
      "value" : 465,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_PERCENTAGE",
      "value" : 45.5435847208619,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_COUNT",
      "value" : 17,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_NEGLIGIBLE_RISK_LOC",
      "value" : 147,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 26.923076923076923,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_NEGLIGIBLE_RISK_COUNT",
      "value" : 28,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_LOW_RISK_LOC",
      "value" : 85,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_LOW_RISK_PERCENTAGE",
      "value" : 15.567765567765568,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_LOW_RISK_COUNT",
      "value" : 6,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_MEDIUM_RISK_LOC",
      "value" : 314,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_MEDIUM_RISK_PERCENTAGE",
      "value" : 57.50915750915751,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_MEDIUM_RISK_COUNT",
      "value" : 11,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SERVER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_LOC",
      "value" : 54,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 62.7906976744186,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_COUNT",
      "value" : 12,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_LOC",
      "value" : 11,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_PERCENTAGE",
      "value" : 12.790697674418604,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_LOC",
      "value" : 21,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_PERCENTAGE",
      "value" : 24.41860465116279,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_NEGLIGIBLE_RISK_LOC",
      "value" : 76,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 44.18604651162791,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_NEGLIGIBLE_RISK_COUNT",
      "value" : 16,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_LOW_RISK_LOC",
      "value" : 49,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_LOW_RISK_PERCENTAGE",
      "value" : 28.488372093023255,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_LOW_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_MEDIUM_RISK_LOC",
      "value" : 47,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_MEDIUM_RISK_PERCENTAGE",
      "value" : 27.325581395348838,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_MEDIUM_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_COMMON_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_NEGLIGIBLE_RISK_LOC",
      "value" : 64,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 29.493087557603687,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_NEGLIGIBLE_RISK_COUNT",
      "value" : 14,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_LOW_RISK_LOC",
      "value" : 70,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_LOW_RISK_PERCENTAGE",
      "value" : 32.25806451612903,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_LOW_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_MEDIUM_RISK_LOC",
      "value" : 83,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_MEDIUM_RISK_PERCENTAGE",
      "value" : 38.24884792626728,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_MEDIUM_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_AGENT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_NEGLIGIBLE_RISK_LOC",
      "value" : 13,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 54.166666666666664,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_NEGLIGIBLE_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_LOW_RISK_LOC",
      "value" : 11,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_LOW_RISK_PERCENTAGE",
      "value" : 45.833333333333336,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_TS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 319,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 32.28744939271255,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 67,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_LOC",
      "value" : 204,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_PERCENTAGE",
      "value" : 20.647773279352226,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_COUNT",
      "value" : 14,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_LOC",
      "value" : 465,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_PERCENTAGE",
      "value" : 47.064777327935225,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_COUNT",
      "value" : 17,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_NEGLIGIBLE_RISK_LOC",
      "value" : 9,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_NEGLIGIBLE_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KTS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_LOC",
      "value" : 993,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 97.25759059745347,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_COUNT",
      "value" : 101,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_LOC",
      "value" : 28,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_PERCENTAGE",
      "value" : 2.742409402546523,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_NEGLIGIBLE_RISK_LOC",
      "value" : 518,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 94.87179487179488,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_NEGLIGIBLE_RISK_COUNT",
      "value" : 44,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_LOW_RISK_LOC",
      "value" : 28,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_LOW_RISK_PERCENTAGE",
      "value" : 5.128205128205129,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SERVER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_LOC",
      "value" : 86,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_NEGLIGIBLE_RISK_COUNT",
      "value" : 14,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGIN_SDK_CORE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_NEGLIGIBLE_RISK_LOC",
      "value" : 172,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_NEGLIGIBLE_RISK_COUNT",
      "value" : 21,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_COMMON_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_NEGLIGIBLE_RISK_LOC",
      "value" : 217,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_NEGLIGIBLE_RISK_COUNT",
      "value" : 22,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_AGENT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_NEGLIGIBLE_RISK_LOC",
      "value" : 24,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_NEGLIGIBLE_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 960,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 97.16599190283401,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 97,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_LOC",
      "value" : 28,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_PERCENTAGE",
      "value" : 2.834008097165992,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_NEGLIGIBLE_RISK_LOC",
      "value" : 9,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_NEGLIGIBLE_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KTS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "FILE_CHANGE_HISTORY_TOTAL_AGE_DAYS",
      "value" : 607,
      "description" : "The age of the repository in days"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ACTIVE_DAYS",
      "value" : 21,
      "description" : "The number of days with at least one file change"
    }, {
      "id" : "FILE_CHANGE_HISTORY_WEEKS",
      "value" : 64,
      "description" : "The number of weeks"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ESTIMATED_WORKING_DAYS",
      "value" : 320,
      "description" : "The number of estimated working days in the period"
    }, {
      "id" : "FILE_AGE_NEGLIGIBLE_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 1-30 days days old"
    }, {
      "id" : "FILE_AGE_LOW_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 31-90 days days old"
    }, {
      "id" : "FILE_AGE_MEDIUM_RISK_COUNT",
      "value" : 65,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_COUNT",
      "value" : 26,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_COUNT",
      "value" : 89,
      "description" : "Number of files 366+ days days old"
    }, {
      "id" : "FILE_AGE_NEGLIGIBLE_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 1-30 days days old"
    }, {
      "id" : "FILE_AGE_LOW_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 31-90 days days old"
    }, {
      "id" : "FILE_AGE_MEDIUM_RISK_LOC",
      "value" : 4143,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_LOC",
      "value" : 1243,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_LOC",
      "value" : 2708,
      "description" : "Number of files 366+ days days old"
    }, {
      "id" : "NUMBER_OF_CONTRIBUTORS",
      "value" : 3,
      "description" : "Number of contributors"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATES",
      "value" : 19,
      "description" : "Number of duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_FILES_WITH_DUPLICATES",
      "value" : 14,
      "description" : "Number of files with duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES",
      "value" : 227,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES",
      "value" : 6300,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE",
      "value" : 3.6031746031746033,
      "description" : "Duplication percentage"
    }, {
      "id" : "UNIT_DUPLICATES_COUNT",
      "value" : 0,
      "description" : "Unit duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_AGENT",
      "value" : 71,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_AGENT",
      "value" : 71,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_AGENT",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_KOTLIN_DSL",
      "value" : 38,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_KOTLIN_DSL",
      "value" : 38,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_KOTLIN_DSL",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_SERVER",
      "value" : 40,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_SERVER",
      "value" : 40,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_SERVER",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_COMMON",
      "value" : 78,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_COMMON",
      "value" : 78,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_COMMON",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ROOT",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ROOT",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_ROOT",
      "value" : "NaN",
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_GRADLE",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_GRADLE",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_GRADLE",
      "value" : "NaN",
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_PLUGIN_SDK_CORE",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_PLUGIN_SDK_CORE",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_PLUGIN_SDK_CORE",
      "value" : "NaN",
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_BUILDSRC",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_BUILDSRC",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_BUILDSRC",
      "value" : "NaN",
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_KT",
      "value" : 173,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KT",
      "value" : 5076,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KT",
      "value" : 3.408195429472025,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_XML",
      "value" : 38,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_XML",
      "value" : 469,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_XML",
      "value" : 8.102345415778252,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_KTS",
      "value" : 16,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KTS",
      "value" : 243,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KTS",
      "value" : 6.584362139917696,
      "description" : "Duplication percentage"
    }, {
      "id" : "TOTAL_ANALYSIS_TIME_IN_MILLIS",
      "value" : 1083,
      "description" : "Total analysis time in milliseconds"
    } ]
  },
  "controlResults" : {
    "goalsAnalysisResults" : [ {
      "metricsWithGoal" : {
        "goal" : "Keep the system simple and easy to change",
        "description" : "Aim at keeping the system size modest (less than 200,000 LOC is good), duplication low (less than 5% is good), files small (no files longer than 1000 LOC is good), and units simple (no units with more than 25 decision points is good).",
        "controls" : [ {
          "metric" : "LINES_OF_CODE_MAIN",
          "description" : "Total number of lines of main code",
          "desiredRange" : {
            "min" : "0",
            "max" : "200000",
            "tolerance" : "20000"
          }
        }, {
          "metric" : "DUPLICATION_PERCENTAGE",
          "description" : "System duplication",
          "desiredRange" : {
            "min" : "0",
            "max" : "5",
            "tolerance" : "1"
          }
        }, {
          "metric" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "description" : "The number of very large files",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        }, {
          "metric" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "description" : "Number of very complex units",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        } ]
      },
      "controlStatuses" : [ {
        "control" : {
          "metric" : "LINES_OF_CODE_MAIN",
          "description" : "Total number of lines of main code",
          "desiredRange" : {
            "min" : "0",
            "max" : "200000",
            "tolerance" : "20000"
          }
        },
        "metric" : {
          "id" : "LINES_OF_CODE_MAIN",
          "value" : 8440,
          "description" : null
        },
        "status" : "OK"
      }, {
        "control" : {
          "metric" : "DUPLICATION_PERCENTAGE",
          "description" : "System duplication",
          "desiredRange" : {
            "min" : "0",
            "max" : "5",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "DUPLICATION_PERCENTAGE",
          "value" : 3.6031746031746033,
          "description" : "Duplication percentage"
        },
        "status" : "OK"
      }, {
        "control" : {
          "metric" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "description" : "The number of very large files",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "value" : 0,
          "description" : "Number of  files with more than 1000 lines of code"
        },
        "status" : "OK"
      }, {
        "control" : {
          "metric" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "description" : "Number of very complex units",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "value" : 0,
          "description" : null
        },
        "status" : "OK"
      } ]
    } ]
  },
  "totalNumberOfFilesInScope" : 313,
  "mainAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 200,
    "linesOfCode" : 8440,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 162,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 6,
      "description" : [ ]
    }, {
      "name" : "  *.jsp",
      "value" : 15,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 8,
      "description" : [ ]
    }, {
      "name" : "  *.tsx",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.ts",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.toml",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 6882,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 626,
      "description" : [ ]
    }, {
      "name" : "  *.jsp",
      "value" : 379,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 322,
      "description" : [ ]
    }, {
      "name" : "  *.tsx",
      "value" : 94,
      "description" : [ ]
    }, {
      "name" : "  *.ts",
      "value" : 69,
      "description" : [ ]
    }, {
      "name" : "  *.toml",
      "value" : 55,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 10,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 3,
      "description" : [ ]
    } ]
  },
  "testAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 62,
    "linesOfCode" : 6586,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 62,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 6586,
      "description" : [ ]
    } ]
  },
  "generatedAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 0,
    "linesOfCode" : 0,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ ],
    "linesOfCodePerExtension" : [ ]
  },
  "buildAndDeployAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 3,
    "linesOfCode" : 85,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.bat",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.sh",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.bat",
      "value" : 73,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 8,
      "description" : [ ]
    }, {
      "name" : "  *.sh",
      "value" : 4,
      "description" : [ ]
    } ]
  },
  "otherAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 12,
    "linesOfCode" : 567,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.md",
      "value" : 6,
      "description" : [ ]
    }, {
      "name" : "  *.json",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.svg",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.md",
      "value" : 503,
      "description" : [ ]
    }, {
      "name" : "  *.json",
      "value" : 60,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.svg",
      "value" : 1,
      "description" : [ ]
    } ]
  },
  "logicalDecompositionsAnalysisResults" : [ {
    "key" : "primary",
    "components" : [ {
      "name" : "server",
      "filesCount" : 87,
      "linesOfCode" : 3681,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 63,
        "description" : [ ]
      }, {
        "name" : "  *.jsp",
        "value" : 15,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.tsx",
        "value" : 2,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 3,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 2961,
        "description" : [ ]
      }, {
        "name" : "  *.jsp",
        "value" : 379,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 116,
        "description" : [ ]
      }, {
        "name" : "  *.tsx",
        "value" : 94,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 69,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 49,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 10,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 3,
        "description" : [ ]
      } ]
    }, {
      "name" : "kotlin-dsl",
      "filesCount" : 2,
      "linesOfCode" : 530,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.xml",
        "value" : 2,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.xml",
        "value" : 530,
        "description" : [ ]
      } ]
    }, {
      "name" : "ROOT",
      "filesCount" : 1,
      "linesOfCode" : 14,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kts",
        "value" : 14,
        "description" : [ ]
      } ]
    }, {
      "name" : "gradle",
      "filesCount" : 1,
      "linesOfCode" : 35,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.toml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.toml",
        "value" : 35,
        "description" : [ ]
      } ]
    }, {
      "name" : "plugin-sdk-core",
      "filesCount" : 24,
      "linesOfCode" : 771,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 21,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.toml",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 683,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 58,
        "description" : [ ]
      }, {
        "name" : "  *.toml",
        "value" : 20,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    }, {
      "name" : "common",
      "filesCount" : 50,
      "linesOfCode" : 1722,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 48,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1689,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 23,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    }, {
      "name" : "buildSrc",
      "filesCount" : 3,
      "linesOfCode" : 75,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kts",
        "value" : 3,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kts",
        "value" : 75,
        "description" : [ ]
      } ]
    }, {
      "name" : "agent",
      "filesCount" : 32,
      "linesOfCode" : 1612,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 30,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1549,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 36,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 27,
        "description" : [ ]
      } ]
    } ],
    "componentDependencies" : [ ],
    "componentDependenciesErrors" : [ ],
    "logicalDecomposition" : {
      "name" : "primary",
      "scope" : "main",
      "filters" : [ ],
      "componentsFolderDepth" : 1,
      "minComponentsCount" : 0,
      "components" : [ {
        "name" : "server",
        "sourceFileFilters" : [ {
          "pathPattern" : "./server/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "kotlin-dsl",
        "sourceFileFilters" : [ {
          "pathPattern" : "./kotlin-dsl/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "ROOT",
        "sourceFileFilters" : [ {
          "pathPattern" : "./.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        }, {
          "pathPattern" : "./server/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./kotlin-dsl/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./gradle/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./plugin-sdk-core/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./common/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./buildSrc/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./agent/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "gradle",
        "sourceFileFilters" : [ {
          "pathPattern" : "./gradle/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "plugin-sdk-core",
        "sourceFileFilters" : [ {
          "pathPattern" : "./plugin-sdk-core/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "common",
        "sourceFileFilters" : [ {
          "pathPattern" : "./common/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "buildSrc",
        "sourceFileFilters" : [ {
          "pathPattern" : "./buildSrc/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "agent",
        "sourceFileFilters" : [ {
          "pathPattern" : "./agent/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      } ],
      "metaComponents" : [ ],
      "groups" : [ ],
      "includeRemainingFiles" : true,
      "dependenciesFinder" : {
        "useBuiltInDependencyFinders" : true,
        "rules" : [ ],
        "metaRules" : [ ]
      },
      "renderingOptions" : {
        "orientation" : "TB",
        "maxNumberOfDependencies" : 100,
        "renderComponentsWithoutDependencies" : true,
        "renderIndirectDependencies" : false,
        "renderInternalIndirectDependencies" : false,
        "reverseDirection" : false
      },
      "includeExternalComponents" : true,
      "dependencyLinkThreshold" : 1,
      "duplicationLinkThreshold" : 50,
      "temporalLinkThreshold" : 1,
      "maxSearchDepthLines" : 200
    },
    "fileCountPerComponent" : [ {
      "name" : "server",
      "value" : 87,
      "description" : [ ]
    }, {
      "name" : "kotlin-dsl",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "ROOT",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "gradle",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "plugin-sdk-core",
      "value" : 24,
      "description" : [ ]
    }, {
      "name" : "common",
      "value" : 50,
      "description" : [ ]
    }, {
      "name" : "buildSrc",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "agent",
      "value" : 32,
      "description" : [ ]
    } ],
    "linesOfCodePerComponent" : [ {
      "name" : "server",
      "value" : 3681,
      "description" : [ ]
    }, {
      "name" : "kotlin-dsl",
      "value" : 530,
      "description" : [ ]
    }, {
      "name" : "ROOT",
      "value" : 14,
      "description" : [ ]
    }, {
      "name" : "gradle",
      "value" : 35,
      "description" : [ ]
    }, {
      "name" : "plugin-sdk-core",
      "value" : 771,
      "description" : [ ]
    }, {
      "name" : "common",
      "value" : 1722,
      "description" : [ ]
    }, {
      "name" : "buildSrc",
      "value" : 75,
      "description" : [ ]
    }, {
      "name" : "agent",
      "value" : 1612,
      "description" : [ ]
    } ]
  } ],
  "concernsAnalysisResults" : [ {
    "key" : "general",
    "concerns" : [ {
      "name" : "TODOs",
      "filesCount" : 1,
      "linesOfCode" : 19,
      "numberOfRegexLineMatches" : 1,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 19,
        "description" : [ ]
      } ]
    }, {
      "name" : "Unclassified",
      "filesCount" : 199,
      "linesOfCode" : 8421,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 161,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 6,
        "description" : [ ]
      }, {
        "name" : "  *.jsp",
        "value" : 15,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 8,
        "description" : [ ]
      }, {
        "name" : "  *.tsx",
        "value" : 2,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 3,
        "description" : [ ]
      }, {
        "name" : "  *.toml",
        "value" : 2,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 6863,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 626,
        "description" : [ ]
      }, {
        "name" : "  *.jsp",
        "value" : 379,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 322,
        "description" : [ ]
      }, {
        "name" : "  *.tsx",
        "value" : 94,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 69,
        "description" : [ ]
      }, {
        "name" : "  *.toml",
        "value" : 55,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 10,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 3,
        "description" : [ ]
      } ]
    } ],
    "concernsGroup" : null,
    "fileCountPerConcern" : [ {
      "name" : "TODOs",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 199,
      "description" : [ ]
    } ],
    "linesOfCodePerConcern" : [ {
      "name" : "TODOs",
      "value" : 19,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 8421,
      "description" : [ ]
    } ]
  } ],
  "foundTags" : [ {
    "tagRule" : {
      "tag" : "maven",
      "color" : "#B9D9EB",
      "pathPatterns" : [ "(|.*/)pom[.]xml" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : ".teamcity/pom.xml"
  }, {
    "tagRule" : {
      "tag" : "npm",
      "color" : "#B9D9EB",
      "pathPatterns" : [ "(|.*/)package[.]json" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : "server/frontend/package.json"
  }, {
    "tagRule" : {
      "tag" : "dependabot",
      "color" : "#B9D9EB",
      "pathPatterns" : [ "(|.*/)dependabot[.]ya?ml" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : ".github/dependabot.yml"
  } ],
  "filesAnalysisResults" : {
    "overallFileSizeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 6100,
      "lowRiskValue" : 1390,
      "mediumRiskValue" : 950,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 11,
      "negligibleRiskCount" : 186,
      "mediumRiskCount" : 3,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 72.27488151658768,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 11.255924170616113,
      "lowRiskPercentage" : 16.46919431279621,
      "totalValue" : 8440,
      "totalCount" : 200
    },
    "fileSizeDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 69,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 3,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 69,
      "totalCount" : 3
    }, {
      "key" : "tsx",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 94,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 94,
      "totalCount" : 2
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 5156,
      "lowRiskValue" : 1274,
      "mediumRiskValue" : 452,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 10,
      "negligibleRiskCount" : 150,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 74.92008137169428,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 6.567858180761407,
      "lowRiskPercentage" : 18.512060447544318,
      "totalValue" : 6882,
      "totalCount" : 162
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 128,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 498,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 5,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 20.447284345047922,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 79.55271565495208,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 626,
      "totalCount" : 6
    }, {
      "key" : "jsp",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 379,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 15,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 379,
      "totalCount" : 15
    }, {
      "key" : "js",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 10,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 10,
      "totalCount" : 1
    }, {
      "key" : "css",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 3,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 3,
      "totalCount" : 1
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 206,
      "lowRiskValue" : 116,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 7,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 63.975155279503106,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 36.024844720496894,
      "totalValue" : 322,
      "totalCount" : 8
    }, {
      "key" : "toml",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 55,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 55,
      "totalCount" : 2
    } ],
    "fileSizeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "fileSizeDistributionPerComponent" : [ {
        "key" : "server",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 2459,
        "lowRiskValue" : 770,
        "mediumRiskValue" : 452,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 6,
        "negligibleRiskCount" : 79,
        "mediumRiskCount" : 2,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 66.80249932083673,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 12.279271936973648,
        "lowRiskPercentage" : 20.918228742189623,
        "totalValue" : 3681,
        "totalCount" : 87
      }, {
        "key" : "kotlin-dsl",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 32,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 498,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 1,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 6.037735849056604,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 93.9622641509434,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 530,
        "totalCount" : 2
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 14,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 1,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 14,
        "totalCount" : 1
      }, {
        "key" : "gradle",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 35,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 1,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 35,
        "totalCount" : 1
      }, {
        "key" : "plugin-sdk-core",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 669,
        "lowRiskValue" : 102,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 23,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 86.7704280155642,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 13.229571984435797,
        "totalValue" : 771,
        "totalCount" : 24
      }, {
        "key" : "common",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 1588,
        "lowRiskValue" : 134,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 49,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 92.21835075493613,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 7.781649245063879,
        "totalValue" : 1722,
        "totalCount" : 50
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 75,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 3,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 75,
        "totalCount" : 3
      }, {
        "key" : "agent",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 1228,
        "lowRiskValue" : 384,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 3,
        "negligibleRiskCount" : 29,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 76.1786600496278,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 23.82133995037221,
        "totalValue" : 1612,
        "totalCount" : 32
      } ]
    } ],
    "longestFiles" : [ {
      "relativePath" : "kotlin-dsl/unreal-engine-runner.xml",
      "extension" : "xml",
      "linesOfCode" : 498,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/EngineInstallationParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 123,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
      "extension" : "kt",
      "linesOfCode" : 120,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 106,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 41
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 88,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunnerDescriptionGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/Selector.tsx",
      "extension" : "tsx",
      "linesOfCode" : 78,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/editRunnerProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 70,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 68,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 34
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/EventBus.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 29
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealEngineRunnerDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsBuildMetadata.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/CookParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "plugin-sdk-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 58,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/CommandletParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSession.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/AutomationTestLogParser.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProgramCommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/RaiseContext.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "buildSrc/src/main/kotlin/plugin.common.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UprojectFileDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithMostUnits" : [ {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 41
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 106,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/CommandExecutionContext.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "server/frontend/src/autocompletion.ts",
      "extension" : "ts",
      "linesOfCode" : 40,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 68,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 34
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/Error.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/EventBus.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryParser.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryEntry.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSession.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 29
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineCommandExecution.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunType.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerPropertiesValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/ComponentParametersFormatter.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/Requirements.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSettingsInitializer.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDependencyConnector.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDefinitionLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/BackgroundJobsScope.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/PerforceDepotPathSplitter.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/AgentBuildStateEventMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
      "extension" : "kt",
      "linesOfCode" : 120,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealEngineRunnerDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/ServerExtensionPointsRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/File.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/CommandLineRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/OperatingSystemEnvironment.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealProjectPathParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    } ]
  },
  "filesHistoryAnalysisResults" : {
    "overallFileLastModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 4143,
      "highRiskValue" : 1243,
      "veryHighRiskValue" : 2708,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 65,
      "highRiskCount" : 26,
      "veryHighRiskCount" : 89,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 33.45688164072152,
      "highRiskPercentage" : 15.357054608351866,
      "mediumRiskPercentage" : 51.186063750926614,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 8094,
      "totalCount" : 180
    },
    "overallFileFirstModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 55,
      "highRiskValue" : 328,
      "veryHighRiskValue" : 7711,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 1,
      "highRiskCount" : 10,
      "veryHighRiskCount" : 169,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 95.26809982703237,
      "highRiskPercentage" : 4.052384482332592,
      "mediumRiskPercentage" : 0.6795156906350382,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 8094,
      "totalCount" : 180
    },
    "overallFileChangeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 7721,
      "lowRiskValue" : 373,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 5,
      "negligibleRiskCount" : 175,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 95.39164813442056,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 4.608351865579442,
      "totalValue" : 8094,
      "totalCount" : 180
    },
    "overallContributorsCountDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 1,
      "mediumRiskThreshold" : 5,
      "highRiskThreshold" : 10,
      "veryHighRiskThreshold" : 25,
      "negligibleRiskValue" : 8024,
      "lowRiskValue" : 70,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 179,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1",
      "lowRiskLabel" : "2-5",
      "mediumRiskLabel" : "6-10",
      "highRiskLabel" : "11-25",
      "veryHighRiskLabel" : "26+",
      "negligibleRiskPercentage" : 99.13516184828268,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.8648381517173215,
      "totalValue" : 8094,
      "totalCount" : 180
    },
    "filesWithoutCommitHistoryCount" : 20,
    "filesWithoutCommitHistoryLinesOfCode" : 346,
    "changeDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "tsx",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 6403,
      "lowRiskValue" : 373,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 5,
      "negligibleRiskCount" : 146,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 94.49527744982291,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 5.504722550177096,
      "totalValue" : 6776,
      "totalCount" : 151
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 626,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 6,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 626,
      "totalCount" : 6
    }, {
      "key" : "jsp",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 302,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 11,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 302,
      "totalCount" : 11
    }, {
      "key" : "js",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 10,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 10,
      "totalCount" : 1
    }, {
      "key" : "css",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 3,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 3,
      "totalCount" : 1
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 322,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 8,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 322,
      "totalCount" : 8
    }, {
      "key" : "toml",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 55,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 55,
      "totalCount" : 2
    } ],
    "lastModifiedDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "tsx",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 3845,
      "highRiskValue" : 1124,
      "veryHighRiskValue" : 1807,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 59,
      "highRiskCount" : 24,
      "veryHighRiskCount" : 68,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 26.667650531286895,
      "highRiskPercentage" : 16.587957497048407,
      "mediumRiskPercentage" : 56.7443919716647,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 6776,
      "totalCount" : 151
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 49,
      "veryHighRiskValue" : 577,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 5,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 92.17252396166134,
      "highRiskPercentage" : 7.827476038338658,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 626,
      "totalCount" : 6
    }, {
      "key" : "jsp",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 70,
      "veryHighRiskValue" : 232,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 10,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 76.82119205298014,
      "highRiskPercentage" : 23.178807947019866,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 302,
      "totalCount" : 11
    }, {
      "key" : "js",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 10,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 10,
      "totalCount" : 1
    }, {
      "key" : "css",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 3,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 3,
      "totalCount" : 1
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 243,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 79,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 4,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 4,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 24.53416149068323,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 75.46583850931677,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 322,
      "totalCount" : 8
    }, {
      "key" : "toml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 55,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 100.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 55,
      "totalCount" : 2
    } ],
    "firstModifiedDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "tsx",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 0,
      "totalCount" : 0
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 55,
      "highRiskValue" : 328,
      "veryHighRiskValue" : 6393,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 1,
      "highRiskCount" : 10,
      "veryHighRiskCount" : 140,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 94.34769775678866,
      "highRiskPercentage" : 4.8406139315230226,
      "mediumRiskPercentage" : 0.8116883116883117,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 6776,
      "totalCount" : 151
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 626,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 6,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 626,
      "totalCount" : 6
    }, {
      "key" : "jsp",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 302,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 11,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 302,
      "totalCount" : 11
    }, {
      "key" : "js",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 10,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 10,
      "totalCount" : 1
    }, {
      "key" : "css",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 3,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 3,
      "totalCount" : 1
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 322,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 8,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 322,
      "totalCount" : 8
    }, {
      "key" : "toml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 55,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 2,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 55,
      "totalCount" : 2
    } ],
    "changeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "server",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 3188,
        "lowRiskValue" : 188,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 2,
        "negligibleRiskCount" : 69,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 94.43127962085308,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 5.568720379146919,
        "totalValue" : 3376,
        "totalCount" : 71
      }, {
        "key" : "kotlin-dsl",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 530,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 2,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 530,
        "totalCount" : 2
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 14,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 1,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 14,
        "totalCount" : 1
      }, {
        "key" : "gradle",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 35,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 1,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 35,
        "totalCount" : 1
      }, {
        "key" : "plugin-sdk-core",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 771,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 24,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 771,
        "totalCount" : 24
      }, {
        "key" : "common",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 1581,
        "lowRiskValue" : 116,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 2,
        "negligibleRiskCount" : 45,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 93.16440777843253,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 6.835592221567472,
        "totalValue" : 1697,
        "totalCount" : 47
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 75,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 3,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 75,
        "totalCount" : 3
      }, {
        "key" : "agent",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 1527,
        "lowRiskValue" : 69,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 30,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 95.67669172932331,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 4.323308270676692,
        "totalValue" : 1596,
        "totalCount" : 31
      } ]
    } ],
    "firstModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "server",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 311,
        "veryHighRiskValue" : 3065,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 8,
        "veryHighRiskCount" : 63,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 90.78791469194313,
        "highRiskPercentage" : 9.212085308056873,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 3376,
        "totalCount" : 71
      }, {
        "key" : "kotlin-dsl",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 530,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 2,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 530,
        "totalCount" : 2
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 14,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 1,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 14,
        "totalCount" : 1
      }, {
        "key" : "gradle",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 35,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 1,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 35,
        "totalCount" : 1
      }, {
        "key" : "plugin-sdk-core",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 55,
        "highRiskValue" : 9,
        "veryHighRiskValue" : 707,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 1,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 22,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 91.69909208819715,
        "highRiskPercentage" : 1.1673151750972763,
        "mediumRiskPercentage" : 7.133592736705578,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 771,
        "totalCount" : 24
      }, {
        "key" : "common",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 8,
        "veryHighRiskValue" : 1689,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 46,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 99.52857984678845,
        "highRiskPercentage" : 0.4714201532115498,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1697,
        "totalCount" : 47
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 75,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 3,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 75,
        "totalCount" : 3
      }, {
        "key" : "agent",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1596,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 31,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1596,
        "totalCount" : 31
      } ]
    } ],
    "lastModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "server",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 1807,
        "highRiskValue" : 684,
        "veryHighRiskValue" : 885,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 20,
        "highRiskCount" : 14,
        "veryHighRiskCount" : 37,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 26.21445497630332,
        "highRiskPercentage" : 20.260663507109005,
        "mediumRiskPercentage" : 53.524881516587676,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 3376,
        "totalCount" : 71
      }, {
        "key" : "kotlin-dsl",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 530,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 2,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 530,
        "totalCount" : 2
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 14,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 100.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 14,
        "totalCount" : 1
      }, {
        "key" : "gradle",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 35,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 100.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 35,
        "totalCount" : 1
      }, {
        "key" : "plugin-sdk-core",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 375,
        "highRiskValue" : 54,
        "veryHighRiskValue" : 342,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 10,
        "highRiskCount" : 2,
        "veryHighRiskCount" : 12,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 44.3579766536965,
        "highRiskPercentage" : 7.003891050583658,
        "mediumRiskPercentage" : 48.63813229571984,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 771,
        "totalCount" : 24
      }, {
        "key" : "common",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 994,
        "highRiskValue" : 37,
        "veryHighRiskValue" : 666,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 19,
        "highRiskCount" : 3,
        "veryHighRiskCount" : 25,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 39.24572775486152,
        "highRiskPercentage" : 2.180318208603418,
        "mediumRiskPercentage" : 58.57395403653506,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1697,
        "totalCount" : 47
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 55,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 20,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 2,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 26.666666666666668,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 73.33333333333333,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 75,
        "totalCount" : 3
      }, {
        "key" : "agent",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 863,
        "highRiskValue" : 468,
        "veryHighRiskValue" : 265,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 13,
        "highRiskCount" : 7,
        "veryHighRiskCount" : 11,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 16.604010025062657,
        "highRiskPercentage" : 29.32330827067669,
        "mediumRiskPercentage" : 54.07268170426065,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1596,
        "totalCount" : 31
      } ]
    } ],
    "oldestFiles" : [ {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "server/src/main/resources/META-INF/build-server-plugin-unreal-engine.xml",
      "extension" : "xml",
      "linesOfCode" : 49,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/EngineInstallationParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 123,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 88,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunnerDescriptionGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealEngineRunnerDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/CookParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSession.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/AutomationTestLogParser.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProgramCommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "buildSrc/src/main/kotlin/plugin.common.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UprojectFileDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/RunnerParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/StageParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UprojectDirsFileDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/WorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/BuildGraphWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineCommandExecution.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealEngineProject.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/CookOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/RunComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "gradle/libs.versions.toml",
      "extension" : "toml",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/StageOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunType.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerPropertiesValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/TeamCityTestServiceMessages.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealTargetPlatform.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealBuildTargetParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/TeamCityTestNameFormatter.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealTargetConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealProjectPathParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    } ],
    "youngestFiles" : [ {
      "relativePath" : "server/frontend/src/Selector.tsx",
      "extension" : "tsx",
      "linesOfCode" : 78,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/autocompletion.ts",
      "extension" : "ts",
      "linesOfCode" : 40,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/viewEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/api/parameters.ts",
      "extension" : "ts",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/editEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/HtmlUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/index.tsx",
      "extension" : "tsx",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/ExtensionRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildConfigurationComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/Requirements.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "server/frontend/src/debounce.ts",
      "extension" : "ts",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunTypeRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/EngineComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/UnrealRunnerComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealProjectDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildCookRunComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealEngineRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/RaiseContext.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/TeamCityLoggers.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealPluginLoggers.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDependencyConnector.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/extensions/BuildPromotionExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSettingsInitializer.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDefinitionLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/extensions/TeamCityApiExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/PerforceDepotPathSplitter.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/CommandletParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/RunCommandletCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editRunAutomationTestsProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/automation/commands/AutomationCommandParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/automation/commands/RunAutomationCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealLogEventParser.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/AutomationTestLogEventHandler.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/EditorExecutableParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/RunAutomationTestsComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewRunAutomationTestsProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 21,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewCommandletProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editCommandletProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealLogEvent.kt",
      "extension" : "kt",
      "linesOfCode" : 12,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/RunCommandletComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewAutomationCommandProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostRecentlyChangedFiles" : [ {
      "relativePath" : "server/frontend/src/Selector.tsx",
      "extension" : "tsx",
      "linesOfCode" : 78,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/autocompletion.ts",
      "extension" : "ts",
      "linesOfCode" : 40,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/viewEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/api/parameters.ts",
      "extension" : "ts",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/editEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/HtmlUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/index.tsx",
      "extension" : "tsx",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/ExtensionRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildConfigurationComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/Requirements.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "server/frontend/src/debounce.ts",
      "extension" : "ts",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunTypeRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/EngineComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/UnrealRunnerComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealProjectDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildCookRunComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealEngineRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
      "extension" : "kt",
      "linesOfCode" : 120,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 41
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 68,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 34
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "plugin-sdk-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 58,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/CommandletParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 58,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/RaiseContext.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "buildSrc/src/main/kotlin/plugin.common.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostPreviouslyChangedFiles" : [ {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/EnumExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/EngineDetectionMode.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealBuildContext.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/ComponentParametersFormatter.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/CookComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/DefaultAdditionalParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealTargetConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealTargetPlatform.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/TeamCityTestServiceMessages.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunType.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/RunComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealEngineProject.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineCommandExecution.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 88,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/css/common-styles.css",
      "extension" : "css",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/extensions/BuildRevisionExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/extensions/ServerResponsibilityExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/build/events/RunnerInternalParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/PropertyValidationError.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/ugs/UgsMetadataServerUrl.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/DistributedBuild.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/JsonEncoder.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/js/ensure-dependencies.js",
      "extension" : "js",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/AgentExtensionPointsRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildGraphComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraph.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/BackgroundJobsScope.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraph.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildEvent.kt",
      "extension" : "kt",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/viewRunnerProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/ugsCommitStatusPublisher.jsp",
      "extension" : "jsp",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/ServerExtensionPointsRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateChanged.kt",
      "extension" : "kt",
      "linesOfCode" : 28,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/build/events/AgentBuildEvent.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerPropertiesValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateChangedEventBus.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "kotlin-dsl/ugs-metadata-server-add-on.xml",
      "extension" : "xml",
      "linesOfCode" : 32,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewBuildGraphProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 33,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildState.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/extensions/LoggerExtensions.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editBuildGraphProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 106,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "buildSrc/settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/resources/META-INF/plugin-sdk-core-beans.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "buildSrc/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryCommands.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/agent/TeamCityParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostChangedFiles" : [ {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/ArchiveOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/BuildGraphWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealProjectPathParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/StageOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "gradle/libs.versions.toml",
      "extension" : "toml",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "buildSrc/src/main/kotlin/plugin.common.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/CommandExecutionContext.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/resources/META-INF/build-agent-plugin-unreal-engine.xml",
      "extension" : "xml",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildListener.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/SingleMachineExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/Error.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/WorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealCommandCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/SkippedBuildMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/AgentBuildStateEventMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "server/src/main/resources/META-INF/build-server-plugin-unreal-engine.xml",
      "extension" : "xml",
      "linesOfCode" : 49,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/RunCommandletCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/RunnerParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/AutomationTestLogParser.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 58,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithMostContributors" : [ {
      "relativePath" : "server/src/main/resources/buildServerResources/editRunnerProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 70,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/ArchiveOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/BuildGraphWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "gradle/libs.versions.toml",
      "extension" : "toml",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealProjectPathParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/StageOptions.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "buildSrc/src/main/kotlin/plugin.common.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 55,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunnerDescriptionGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildListener.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/AgentBuildStateEventMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/SkippedBuildMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
      "extension" : "kt",
      "linesOfCode" : 120,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "server/src/main/resources/META-INF/build-server-plugin-unreal-engine.xml",
      "extension" : "xml",
      "linesOfCode" : 49,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugin-sdk-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 58,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/CommandExecutionContext.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/Error.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/RunnerParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealCommandCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/RunCommandletCommand.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/AutomationTestLogParser.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/SingleMachineExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithLeastContributors" : [ {
      "relativePath" : "server/frontend/src/Selector.tsx",
      "extension" : "tsx",
      "linesOfCode" : 78,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/autocompletion.ts",
      "extension" : "ts",
      "linesOfCode" : 40,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/editBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/viewEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 24,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/api/parameters.ts",
      "extension" : "ts",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/common/editEngineDetectionParameters.jsp",
      "extension" : "jsp",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/HtmlUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/frontend/src/index.tsx",
      "extension" : "tsx",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/ExtensionRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildConfigurationComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/Requirements.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "server/frontend/src/debounce.ts",
      "extension" : "ts",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/resources/buildServerResources/commands/viewBuildCookRunProperties.jsp",
      "extension" : "jsp",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunTypeRegistration.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/EngineComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/UnrealRunnerComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealProjectDiscoverer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/BuildCookRunComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/UnrealEngineRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildCookRunParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "kotlin-dsl/unreal-engine-runner.xml",
      "extension" : "xml",
      "linesOfCode" : 498,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 240,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
      "extension" : "kt",
      "linesOfCode" : 212,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
      "extension" : "kt",
      "linesOfCode" : 149,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 43
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributionConfigurer.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineSourceVersionDetector.kt",
      "extension" : "kt",
      "linesOfCode" : 139,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 134,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/EngineInstallationParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 123,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealToolRegistry.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 15
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
      "extension" : "kt",
      "linesOfCode" : 120,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "server/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 116,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
      "extension" : "kt",
      "linesOfCode" : 106,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 41
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 99,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsParameters.kt",
      "extension" : "kt",
      "linesOfCode" : 90,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfiguration.kt",
      "extension" : "kt",
      "linesOfCode" : 88,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/RunnerDescriptionGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/BuildConfigurationParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSessionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 76,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 26
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
      "extension" : "kt",
      "linesOfCode" : 73,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerParametersProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/EngineDetectionModeParameter.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 68,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 34
    }, {
      "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/EventBus.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 29
    } ],
    "firstDate" : "2024-05-22",
    "latestDate" : "2025-08-14",
    "daysBetweenFirstAndLastDate" : 450,
    "weeks" : 64,
    "estimatedWorkindDays" : 320,
    "activeDays" : 21,
    "ageInDays" : 607,
    "historyPerExtensionPerYear" : [ {
      "extension" : "",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "xml",
      "year" : "2024",
      "commitsCount" : 6,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2024",
      "commitsCount" : 17,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2025",
      "commitsCount" : 14,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "xml",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "css",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "json",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2025",
      "commitsCount" : 11,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "jspf",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2024",
      "commitsCount" : 13,
      "contributors" : [ "vladimir.popov@jetbrains.com", "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "js",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "toml",
      "year" : "2024",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "toml",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "jsp",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "filipp.riabchun@jetbrains.com" ]
    }, {
      "extension" : "gitignore",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "editorconfig",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2025",
      "commitsCount" : 4,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2024",
      "commitsCount" : 4,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2025",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "png",
      "year" : "2024",
      "commitsCount" : 4,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "png",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    }, {
      "extension" : "jsp",
      "year" : "2024",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.grinin@jetbrains.com" ]
    } ]
  },
  "unitsAnalysisResults" : {
    "totalNumberOfUnits" : 102,
    "linesOfCodeInUnits" : 1021,
    "unitSizeRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 341,
      "lowRiskValue" : 215,
      "mediumRiskValue" : 465,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 15,
      "negligibleRiskCount" : 70,
      "mediumRiskCount" : 17,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 33.39862879529873,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 45.5435847208619,
      "lowRiskPercentage" : 21.057786483839372,
      "totalValue" : 1021,
      "totalCount" : 102
    },
    "conditionalComplexityRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 993,
      "lowRiskValue" : 28,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 101,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 97.25759059745347,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 2.742409402546523,
      "totalValue" : 1021,
      "totalCount" : 102
    },
    "unitSizeRiskDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 13,
      "lowRiskValue" : 11,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 54.166666666666664,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 45.833333333333336,
      "totalValue" : 24,
      "totalCount" : 3
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 319,
      "lowRiskValue" : 204,
      "mediumRiskValue" : 465,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 14,
      "negligibleRiskCount" : 67,
      "mediumRiskCount" : 17,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 32.28744939271255,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 47.064777327935225,
      "lowRiskPercentage" : 20.647773279352226,
      "totalValue" : 988,
      "totalCount" : 98
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 9,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 9,
      "totalCount" : 1
    } ],
    "unitSizeRiskDistributionPerComponent" : [ [ {
      "key" : "server",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 147,
      "lowRiskValue" : 85,
      "mediumRiskValue" : 314,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 6,
      "negligibleRiskCount" : 28,
      "mediumRiskCount" : 11,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 26.923076923076923,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 57.50915750915751,
      "lowRiskPercentage" : 15.567765567765568,
      "totalValue" : 546,
      "totalCount" : 45
    }, {
      "key" : "plugin-sdk-core",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 54,
      "lowRiskValue" : 11,
      "mediumRiskValue" : 21,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 12,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 62.7906976744186,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 24.41860465116279,
      "lowRiskPercentage" : 12.790697674418604,
      "totalValue" : 86,
      "totalCount" : 14
    }, {
      "key" : "common",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 76,
      "lowRiskValue" : 49,
      "mediumRiskValue" : 47,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 3,
      "negligibleRiskCount" : 16,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 44.18604651162791,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 27.325581395348838,
      "lowRiskPercentage" : 28.488372093023255,
      "totalValue" : 172,
      "totalCount" : 21
    }, {
      "key" : "agent",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 64,
      "lowRiskValue" : 70,
      "mediumRiskValue" : 83,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 5,
      "negligibleRiskCount" : 14,
      "mediumRiskCount" : 3,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 29.493087557603687,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 38.24884792626728,
      "lowRiskPercentage" : 32.25806451612903,
      "totalValue" : 217,
      "totalCount" : 22
    } ] ],
    "longestUnits" : [ {
      "shortName" : "suspend fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
        "extension" : "kt",
        "linesOfCode" : 140,
        "unitsCount" : 6,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 43
      },
      "startLine" : 110,
      "endLine" : 157,
      "linesOfCode" : 43,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun track()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 46
      },
      "startLine" : 28,
      "endLine" : 62,
      "linesOfCode" : 33,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun from()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedBuildSettingsCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 36,
      "endLine" : 69,
      "linesOfCode" : 32,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override suspend fun handleBuildEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/AgentBuildStateEventMonitor.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 20,
      "endLine" : 53,
      "linesOfCode" : 31,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun connect()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDependencyConnector.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 30
      },
      "startLine" : 17,
      "endLine" : 51,
      "linesOfCode" : 30,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun onStandardOutput()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 33,
      "endLine" : 64,
      "linesOfCode" : 29,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 28
      },
      "startLine" : 67,
      "endLine" : 99,
      "linesOfCode" : 28,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun validate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 31,
      "endLine" : 61,
      "linesOfCode" : 27,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun discoverRunnersInDirectory()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/discovery/UnrealEngineRunnerDiscoverer.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 24,
      "endLine" : 54,
      "linesOfCode" : 27,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun initializeBuildSettings()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSettingsInitializer.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 13,
      "endLine" : 41,
      "linesOfCode" : 26,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseTargetConfigurations()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 75,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 56,
      "endLine" : 82,
      "linesOfCode" : 26,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun create()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 28,
      "endLine" : 56,
      "linesOfCode" : 25,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun testConnection()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 54,
      "endLine" : 75,
      "linesOfCode" : 22,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun update()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 34
      },
      "startLine" : 34,
      "endLine" : 58,
      "linesOfCode" : 22,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun runnerFinished()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 29
      },
      "startLine" : 34,
      "endLine" : 58,
      "linesOfCode" : 22,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun run()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/common/CommandLineRunner.kt",
        "extension" : "kt",
        "linesOfCode" : 39,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 11,
      "endLine" : 34,
      "linesOfCode" : 21,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseOptions()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 67,
      "endLine" : 91,
      "linesOfCode" : 21,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 109,
      "endLine" : 129,
      "linesOfCode" : 20,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
        "extension" : "kt",
        "linesOfCode" : 99,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 27,
      "endLine" : 47,
      "linesOfCode" : 20,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerPropertiesValidator.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 15,
      "endLine" : 33,
      "linesOfCode" : 17,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun setupDistributedBuild()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 21,
      "endLine" : 41,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseTargetPlatforms()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 58,
      "endLine" : 76,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override suspend fun consume()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
        "extension" : "kt",
        "linesOfCode" : 240,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 14
      },
      "startLine" : 40,
      "endLine" : 53,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun findEngine()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 14
      },
      "startLine" : 32,
      "endLine" : 48,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun handleBuildEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 46
      },
      "startLine" : 68,
      "endLine" : 82,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun translate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/agent/AgentBuildEventReceiver.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 13
      },
      "startLine" : 43,
      "endLine" : 56,
      "linesOfCode" : 13,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun format()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/TeamCityTestNameFormatter.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 13
      },
      "startLine" : 12,
      "endLine" : 25,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealCommandTypeParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 12
      },
      "startLine" : 56,
      "endLine" : 67,
      "linesOfCode" : 12,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 18
      },
      "startLine" : 58,
      "endLine" : 70,
      "linesOfCode" : 12,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "async function getAutocompletion()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/frontend/src/autocompletion.ts",
        "extension" : "ts",
        "linesOfCode" : 40,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 18,
      "endLine" : 28,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun tryParseValue()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryParser.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 26,
      "endLine" : 37,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getArguments()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProgramCommandLine.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 11
      },
      "startLine" : 38,
      "endLine" : 48,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function convertToTags()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/frontend/src/autocompletion.ts",
        "extension" : "ts",
        "linesOfCode" : 40,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 32,
      "endLine" : 41,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getRunnerSpecificRequirements()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunType.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 33,
      "endLine" : 43,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun split()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/PerforceDepotPathSplitter.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 32,
      "endLine" : 41,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun postBuildMetadata()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsMetadataServerClient.kt",
        "extension" : "kt",
        "linesOfCode" : 149,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 76,
      "endLine" : 85,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 24,
      "endLine" : 34,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun register()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/ServerExtensionPointsRegistration.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 17,
      "endLine" : 26,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun tryParseKey()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryParser.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 15,
      "endLine" : 24,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getSelectedOptionsAsJsArray()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/RunnerParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 42,
      "endLine" : 54,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun dfs()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphExtensions.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 8,
      "endLine" : 16,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun describeParameters()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 97,
      "endLine" : 106,
      "linesOfCode" : 9,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun doTaskAction()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 116,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 68,
      "endLine" : 76,
      "linesOfCode" : 9,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun macos()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 43,
      "endLine" : 51,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun linux()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 53,
      "endLine" : 61,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun windows()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 63,
      "endLine" : 71,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun fromRunnerParameters()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphRunnerInternalSettings.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 30,
      "endLine" : 39,
      "linesOfCode" : 9,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun loadFrom()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDefinitionLoader.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 8
      },
      "startLine" : 16,
      "endLine" : 24,
      "linesOfCode" : 8,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun init()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateStorage.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 34
      },
      "startLine" : 18,
      "endLine" : 25,
      "linesOfCode" : 8,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getNextCommand()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSession.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 12
      },
      "startLine" : 39,
      "endLine" : 49,
      "linesOfCode" : 8,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ],
    "conditionalComplexityRiskDistributionPerExtension" : [ {
      "key" : "ts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 24,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 3,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 24,
      "totalCount" : 3
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 960,
      "lowRiskValue" : 28,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 97,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 97.16599190283401,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 2.834008097165992,
      "totalValue" : 988,
      "totalCount" : 98
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 9,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 9,
      "totalCount" : 1
    } ],
    "conditionalComplexityRiskDistributionPerComponent" : [ [ {
      "key" : "server",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 518,
      "lowRiskValue" : 28,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 44,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 94.87179487179488,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 5.128205128205129,
      "totalValue" : 546,
      "totalCount" : 45
    }, {
      "key" : "plugin-sdk-core",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 86,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 14,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 86,
      "totalCount" : 14
    }, {
      "key" : "common",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 172,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 21,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 172,
      "totalCount" : 21
    }, {
      "key" : "agent",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 217,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 22,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 217,
      "totalCount" : 22
    } ] ],
    "mostComplexUnits" : [ {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphParser.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 28
      },
      "startLine" : 67,
      "endLine" : 99,
      "linesOfCode" : 28,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override suspend fun handleBuildEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/AgentBuildStateEventMonitor.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 20,
      "endLine" : 53,
      "linesOfCode" : 31,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseOptions()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 67,
      "endLine" : 91,
      "linesOfCode" : 21,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseTargetConfigurations()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 75,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 56,
      "endLine" : 82,
      "linesOfCode" : 26,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 18
      },
      "startLine" : 58,
      "endLine" : 70,
      "linesOfCode" : 12,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun onStandardOutput()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealEngineProcessListener.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 33,
      "endLine" : 64,
      "linesOfCode" : 29,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "async function getAutocompletion()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/frontend/src/autocompletion.ts",
        "extension" : "ts",
        "linesOfCode" : 40,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 18,
      "endLine" : 28,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function convertToTags()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/frontend/src/autocompletion.ts",
        "extension" : "ts",
        "linesOfCode" : 40,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 32,
      "endLine" : 41,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun initializeBuildSettings()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSettingsInitializer.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 13,
      "endLine" : 41,
      "linesOfCode" : 26,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun setupDistributedBuild()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedSetupOrchestrator.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 21,
      "endLine" : 41,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun dfs()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphExtensions.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 8,
      "endLine" : 16,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun split()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/PerforceDepotPathSplitter.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 32,
      "endLine" : 41,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisher.kt",
        "extension" : "kt",
        "linesOfCode" : 140,
        "unitsCount" : 6,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 43
      },
      "startLine" : 110,
      "endLine" : 157,
      "linesOfCode" : 43,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun handleBuildEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/state/DistributedBuildStateTracker.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 46
      },
      "startLine" : 68,
      "endLine" : 82,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun macos()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 43,
      "endLine" : 51,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun linux()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 53,
      "endLine" : 61,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun windows()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/ResourceLocator.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 41
      },
      "startLine" : 63,
      "endLine" : 71,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun tryParseKey()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryParser.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 15,
      "endLine" : 24,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun tryParseValue()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugin-sdk-core/src/main/kotlin/com/jetbrains/teamcity/plugins/framework/resource/location/windows/registry/WindowsRegistryParser.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 26,
      "endLine" : 37,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseScriptPath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 25,
      "endLine" : 32,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseTargetNode()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 46,
      "endLine" : 53,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildgraph/BuildGraphParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 55
      },
      "startLine" : 109,
      "endLine" : 129,
      "linesOfCode" : 20,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseProjectPath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/parameters/UnrealProjectPathParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 22,
      "endLine" : 29,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun fromMap()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/build/events/AgentBuildEventConverter.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 33,
      "endLine" : 39,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseTargetPlatforms()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 58,
      "endLine" : 76,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseCommandlet()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/CommandletParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 40,
      "endLine" : 47,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parseCommand()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/automation/commands/AutomationCommandParameters.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 20,
      "endLine" : 28,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun format()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/reporting/TeamCityTestNameFormatter.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 13
      },
      "startLine" : 12,
      "endLine" : 25,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun processFinished()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
        "extension" : "kt",
        "linesOfCode" : 99,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 26
      },
      "startLine" : 60,
      "endLine" : 65,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getNextCommand()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineBuildSession.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 12
      },
      "startLine" : 39,
      "endLine" : 49,
      "linesOfCode" : 8,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getArguments()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProgramCommandLine.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 11
      },
      "startLine" : 38,
      "endLine" : 48,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun beforeRunnerStart()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 29
      },
      "startLine" : 24,
      "endLine" : 32,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun runnerFinished()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/events/BuildStepExecutionMonitor.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 29
      },
      "startLine" : 34,
      "endLine" : 58,
      "linesOfCode" : 22,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun deserialize()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/build/log/UnrealJsonLogEventParser.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 18
      },
      "startLine" : 35,
      "endLine" : 40,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "export async function getTagsAutocompletion()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/frontend/src/autocompletion.ts",
        "extension" : "ts",
        "linesOfCode" : 40,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 14,
      "endLine" : 16,
      "linesOfCode" : 3,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun getRunnerSpecificRequirements()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunType.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 33,
      "endLine" : 43,
      "linesOfCode" : 10,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/UnrealEngineRunnerPropertiesValidator.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 15,
      "endLine" : 33,
      "linesOfCode" : 17,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun formatFlags()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/ui/ComponentParametersFormatter.kt",
        "extension" : "kt",
        "linesOfCode" : 15,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 6,
      "endLine" : 12,
      "linesOfCode" : 7,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun engineExists()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/runner/Requirements.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 4
      },
      "startLine" : 10,
      "endLine" : 13,
      "linesOfCode" : 4,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun connect()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDependencyConnector.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 30
      },
      "startLine" : 17,
      "endLine" : 51,
      "linesOfCode" : 30,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun create()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDistributedBuildCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 22,
      "endLine" : 28,
      "linesOfCode" : 7,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun create()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphVirtualBuildCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 28,
      "endLine" : 56,
      "linesOfCode" : 25,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun loadFrom()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphDefinitionLoader.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 8
      },
      "startLine" : 16,
      "endLine" : 24,
      "linesOfCode" : 8,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override suspend fun consume()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
        "extension" : "kt",
        "linesOfCode" : 240,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 14
      },
      "startLine" : 40,
      "endLine" : 53,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun validate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphSetupBuildValidator.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 31,
      "endLine" : 61,
      "linesOfCode" : 27,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun consume()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/EventBus.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 6
      },
      "startLine" : 16,
      "endLine" : 16,
      "linesOfCode" : 0,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun dispatch()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/EventBus.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 6
      },
      "startLine" : 69,
      "endLine" : 74,
      "linesOfCode" : 6,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun serverShutdown()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/BackgroundJobsScope.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 3
      },
      "startLine" : 21,
      "endLine" : 23,
      "linesOfCode" : 3,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun testConnection()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 54,
      "endLine" : 75,
      "linesOfCode" : 22,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun createPublisher()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/build/status/ugs/UgsCommitStatusPublisherSettings.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 77,
      "endLine" : 77,
      "linesOfCode" : 0,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ]
  },
  "duplicationAnalysisResults" : {
    "overallDuplication" : {
      "key" : "system",
      "numberOfDuplicates" : 19,
      "cleanedLinesOfCode" : 6300,
      "duplicatedLinesOfCode" : 227,
      "numberOfFilesWithDuplicates" : 14,
      "duplicationPercentage" : 3.6031746031746033
    },
    "duplicationPerComponent" : [ [ {
      "key" : "agent",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 1160,
      "duplicatedLinesOfCode" : 71,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 6.120689655172414
    }, {
      "key" : "kotlin-dsl",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 378,
      "duplicatedLinesOfCode" : 38,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 10.052910052910052
    }, {
      "key" : "server",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 2777,
      "duplicatedLinesOfCode" : 40,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 1.4404033129276197
    }, {
      "key" : "common",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 1363,
      "duplicatedLinesOfCode" : 78,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 5.7226705796038155
    }, {
      "key" : "ROOT",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 11,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "gradle",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 35,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "plugin-sdk-core",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 526,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "buildSrc",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 50,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    } ] ],
    "duplicationPerConcern" : [ ],
    "duplicationPerExtension" : [ {
      "key" : "kt",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 5076,
      "duplicatedLinesOfCode" : 173,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 3.408195429472025
    }, {
      "key" : "xml",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 469,
      "duplicatedLinesOfCode" : 38,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 8.102345415778252
    }, {
      "key" : "kts",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 243,
      "duplicatedLinesOfCode" : 16,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 6.584362139917696
    } ],
    "longestDuplicates" : [ {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "kotlin-dsl/unreal-engine-runner.xml",
          "extension" : "xml",
          "linesOfCode" : 498,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 358,
        "startLine" : 260,
        "endLine" : 287,
        "cleanedStartLine" : 161,
        "cleanedEndLine" : 179,
        "percentage" : 5.307262569832402,
        "blockSize" : 19
      }, {
        "sourceFile" : {
          "relativePath" : "kotlin-dsl/unreal-engine-runner.xml",
          "extension" : "xml",
          "linesOfCode" : 498,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 358,
        "startLine" : 296,
        "endLine" : 323,
        "cleanedStartLine" : 183,
        "cleanedEndLine" : 201,
        "percentage" : 5.307262569832402,
        "blockSize" : 19
      } ],
      "blockSize" : 19
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 58,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 33,
        "percentage" : 42.42424242424242,
        "blockSize" : 14
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 58,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 33,
        "percentage" : 42.42424242424242,
        "blockSize" : 14
      } ],
      "blockSize" : 14
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
          "extension" : "kt",
          "linesOfCode" : 240,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 14
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 147,
        "endLine" : 157,
        "cleanedStartLine" : 89,
        "cleanedEndLine" : 98,
        "percentage" : 5.4945054945054945,
        "blockSize" : 10
      }, {
        "sourceFile" : {
          "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
          "extension" : "kt",
          "linesOfCode" : 240,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 14
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 183,
        "endLine" : 193,
        "cleanedStartLine" : 117,
        "cleanedEndLine" : 126,
        "percentage" : 5.4945054945054945,
        "blockSize" : 10
      } ],
      "blockSize" : 10
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/automation/commands/AutomationCommandParameters.kt",
          "extension" : "kt",
          "linesOfCode" : 40,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 7
        },
        "sourceFileCleanedLinesOfCode" : 31,
        "startLine" : 36,
        "endLine" : 46,
        "cleanedStartLine" : 22,
        "cleanedEndLine" : 31,
        "percentage" : 32.25806451612903,
        "blockSize" : 10
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/commandlets/CommandletParameters.kt",
          "extension" : "kt",
          "linesOfCode" : 58,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 7
        },
        "sourceFileCleanedLinesOfCode" : 47,
        "startLine" : 55,
        "endLine" : 65,
        "cleanedStartLine" : 38,
        "cleanedEndLine" : 47,
        "percentage" : 21.27659574468085,
        "blockSize" : 10
      } ],
      "blockSize" : 10
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 28,
        "endLine" : 39,
        "cleanedStartLine" : 9,
        "cleanedEndLine" : 18,
        "percentage" : 30.303030303030305,
        "blockSize" : 10
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 28,
        "endLine" : 39,
        "cleanedStartLine" : 9,
        "cleanedEndLine" : 18,
        "percentage" : 30.303030303030305,
        "blockSize" : 10
      } ],
      "blockSize" : 10
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 53,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 28,
        "percentage" : 27.272727272727273,
        "blockSize" : 9
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 53,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 28,
        "percentage" : 27.272727272727273,
        "blockSize" : 9
      } ],
      "blockSize" : 9
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 53,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 28,
        "percentage" : 27.272727272727273,
        "blockSize" : 9
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 53,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 28,
        "percentage" : 27.272727272727273,
        "blockSize" : 9
      } ],
      "blockSize" : 9
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 23,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 19,
        "startLine" : 14,
        "endLine" : 24,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 18,
        "percentage" : 42.10526315789474,
        "blockSize" : 8
      }, {
        "sourceFile" : {
          "relativePath" : "server/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 116,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 9
        },
        "sourceFileCleanedLinesOfCode" : 92,
        "startLine" : 130,
        "endLine" : 140,
        "cleanedStartLine" : 82,
        "cleanedEndLine" : 89,
        "percentage" : 8.695652173913043,
        "blockSize" : 8
      } ],
      "blockSize" : 8
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/CookParameters.kt",
          "extension" : "kt",
          "linesOfCode" : 62,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 55,
        "startLine" : 30,
        "endLine" : 37,
        "cleanedStartLine" : 21,
        "cleanedEndLine" : 27,
        "percentage" : 12.727272727272727,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/CookParameters.kt",
          "extension" : "kt",
          "linesOfCode" : 62,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 55,
        "startLine" : 53,
        "endLine" : 60,
        "cleanedStartLine" : 40,
        "cleanedEndLine" : 46,
        "percentage" : 12.727272727272727,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 50,
        "endLine" : 56,
        "cleanedStartLine" : 25,
        "cleanedEndLine" : 31,
        "percentage" : 21.21212121212121,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 99,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 74,
        "startLine" : 93,
        "endLine" : 99,
        "cleanedStartLine" : 61,
        "cleanedEndLine" : 67,
        "percentage" : 9.45945945945946,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 50,
        "endLine" : 56,
        "cleanedStartLine" : 25,
        "cleanedEndLine" : 31,
        "percentage" : 21.21212121212121,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 99,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 74,
        "startLine" : 93,
        "endLine" : 99,
        "cleanedStartLine" : 61,
        "cleanedEndLine" : 67,
        "percentage" : 9.45945945945946,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 24,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 12.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 36,
        "endLine" : 42,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 12.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 36,
        "endLine" : 42,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 12.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 48,
        "endLine" : 54,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 12.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 24,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 12.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 48,
        "endLine" : 54,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 12.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 25,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 47,
        "endLine" : 52,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 25,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 36,
        "endLine" : 41,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 36,
        "endLine" : 41,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 47,
        "endLine" : 52,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 99,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 74,
        "startLine" : 92,
        "endLine" : 97,
        "cleanedStartLine" : 60,
        "cleanedEndLine" : 65,
        "percentage" : 8.108108108108109,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/SingleMachineExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 20,
        "startLine" : 22,
        "endLine" : 27,
        "cleanedStartLine" : 10,
        "cleanedEndLine" : 15,
        "percentage" : 30.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
          "extension" : "kt",
          "linesOfCode" : 240,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 14
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 208,
        "endLine" : 216,
        "cleanedStartLine" : 138,
        "cleanedEndLine" : 143,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "server/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/server/buildgraph/BuildGraphBadgePublisher.kt",
          "extension" : "kt",
          "linesOfCode" : 240,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 14
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 225,
        "endLine" : 233,
        "cleanedStartLine" : 152,
        "cleanedEndLine" : 157,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    } ],
    "mostFrequentDuplicates" : [ {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 50,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 50,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 41,
        "endLine" : 50,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 47,
        "endLine" : 53,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 47,
        "endLine" : 53,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 47,
        "endLine" : 53,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 44,
        "endLine" : 52,
        "cleanedStartLine" : 22,
        "cleanedEndLine" : 27,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 44,
        "endLine" : 52,
        "cleanedStartLine" : 22,
        "cleanedEndLine" : 27,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 44,
        "endLine" : 52,
        "cleanedStartLine" : 22,
        "cleanedEndLine" : 27,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 24,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 12.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 36,
        "endLine" : 42,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 12.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetPlatformsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 64,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 50,
        "startLine" : 48,
        "endLine" : 54,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 12.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 99,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 74,
        "startLine" : 93,
        "endLine" : 98,
        "cleanedStartLine" : 61,
        "cleanedEndLine" : 66,
        "percentage" : 8.108108108108109,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 50,
        "endLine" : 55,
        "cleanedStartLine" : 25,
        "cleanedEndLine" : 30,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 50,
        "endLine" : 55,
        "cleanedStartLine" : 25,
        "cleanedEndLine" : 30,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 25,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 36,
        "endLine" : 41,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "common/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/common/buildcookrun/UnrealTargetConfigurationsParameter.kt",
          "extension" : "kt",
          "linesOfCode" : 75,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 58,
        "startLine" : 47,
        "endLine" : 52,
        "cleanedStartLine" : 29,
        "cleanedEndLine" : 34,
        "percentage" : 10.344827586206897,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildgraph/DistributedExecutor.kt",
          "extension" : "kt",
          "linesOfCode" : 99,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 26
        },
        "sourceFileCleanedLinesOfCode" : 74,
        "startLine" : 94,
        "endLine" : 99,
        "cleanedStartLine" : 62,
        "cleanedEndLine" : 67,
        "percentage" : 8.108108108108109,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 51,
        "endLine" : 56,
        "cleanedStartLine" : 26,
        "cleanedEndLine" : 31,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 51,
        "endLine" : 56,
        "cleanedStartLine" : 26,
        "cleanedEndLine" : 31,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/commandlets/CommandletWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 42,
        "endLine" : 51,
        "cleanedStartLine" : 21,
        "cleanedEndLine" : 26,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/automation/commands/RunAutomationCommandWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 42,
        "endLine" : 51,
        "cleanedStartLine" : 21,
        "cleanedEndLine" : 26,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/buildcookrun/BuildCookRunWorkflowCreator.kt",
          "extension" : "kt",
          "linesOfCode" : 53,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 42,
        "endLine" : 51,
        "cleanedStartLine" : 21,
        "cleanedEndLine" : 26,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    } ]
  },
  "contributorsAnalysisResults" : {
    "latestCommitDate" : "2025-08-14",
    "contributors" : [ {
      "email" : "vladislav.grinin@jetbrains.com",
      "userName" : "Vladislav Grinin",
      "commitsCount" : 37,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 6,
      "commitsCount365Days" : 17,
      "firstCommitDate" : "2024-05-22",
      "latestCommitDate" : "2025-08-14",
      "activeYears" : [ "2024", "2025" ],
      "commitDates" : [ "2025-08-14", "2025-08-11", "2025-07-31", "2025-07-30", "2025-07-15", "2025-05-26", "2025-05-09", "2025-05-08", "2025-05-07", "2025-04-25", "2024-12-18", "2024-11-06", "2024-11-05", "2024-11-04", "2024-10-31", "2024-10-16", "2024-06-14", "2024-06-12", "2024-06-11", "2024-05-22" ],
      "bot" : false,
      "active" : true,
      "rookie" : false
    }, {
      "email" : "filipp.riabchun@jetbrains.com",
      "userName" : "Filipp Riabchun",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 1,
      "firstCommitDate" : "2025-03-06",
      "latestCommitDate" : "2025-03-06",
      "activeYears" : [ "2025" ],
      "commitDates" : [ "2025-03-06" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "vladimir.popov@jetbrains.com",
      "userName" : "Vladimir.Popov",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2024-10-16",
      "latestCommitDate" : "2024-10-16",
      "activeYears" : [ "2024" ],
      "commitDates" : [ "2024-10-16" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    } ],
    "contributorsPerYear" : [ {
      "timeSlot" : "2024",
      "contributorsCount" : 2,
      "commitsCount" : 21
    }, {
      "timeSlot" : "2025",
      "contributorsCount" : 2,
      "commitsCount" : 18
    } ],
    "contributorsPerMonth" : [ {
      "timeSlot" : "2024-05",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-06",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2024-10",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2024-11",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2024-12",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2025-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-04",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2025-05",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2025-07",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2025-08",
      "contributorsCount" : 1,
      "commitsCount" : 3
    } ],
    "contributorsPerDay" : [ {
      "timeSlot" : "2024-05-22",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-06-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-06-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-06-14",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-10-16",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-10-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-11-04",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-11-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-11-06",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-12-18",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2025-03-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-04-25",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2025-05-07",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-05-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-05-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-05-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-07-15",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-07-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-07-31",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-08-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-08-14",
      "contributorsCount" : 1,
      "commitsCount" : 2
    } ],
    "contributorsPerWeek" : [ {
      "timeSlot" : "2024-05-20",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-06-10",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2024-10-14",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2024-10-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-11-04",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2024-12-16",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2025-03-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-04-21",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2025-05-05",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2025-05-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2025-07-14",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-07-28",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2025-08-11",
      "contributorsCount" : 1,
      "commitsCount" : 3
    } ],
    "commitsPerExtensions" : [ {
      "extension" : "jsp",
      "commitsCount" : 12,
      "committers" : [ "filipp.riabchun@jetbrains.com", "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 11,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "filipp.riabchun@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 11
      } ]
    }, {
      "extension" : "kt",
      "commitsCount" : 515,
      "committers" : [ "vladislav.grinin@jetbrains.com", "vladimir.popov@jetbrains.com" ],
      "filesCount" : 238,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladimir.popov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 513
      } ]
    }, {
      "extension" : "",
      "commitsCount" : 2,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "css",
      "commitsCount" : 1,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "gitignore",
      "commitsCount" : 3,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 2,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      } ]
    }, {
      "extension" : "png",
      "commitsCount" : 5,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 5,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 5
      } ]
    }, {
      "extension" : "js",
      "commitsCount" : 1,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "kts",
      "commitsCount" : 26,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 12,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 26
      } ]
    }, {
      "extension" : "toml",
      "commitsCount" : 8,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 3,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 8
      } ]
    }, {
      "extension" : "jspf",
      "commitsCount" : 3,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 3,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      } ]
    }, {
      "extension" : "bat",
      "commitsCount" : 2,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "xml",
      "commitsCount" : 16,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 7,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 16
      } ]
    }, {
      "extension" : "md",
      "commitsCount" : 43,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 6,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 43
      } ]
    }, {
      "extension" : "editorconfig",
      "commitsCount" : 1,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "json",
      "commitsCount" : 2,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 2,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "jar",
      "commitsCount" : 2,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "properties",
      "commitsCount" : 7,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 4,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 7
      } ]
    }, {
      "extension" : "yaml",
      "commitsCount" : 1,
      "committers" : [ "vladislav.grinin@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.grinin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    } ]
  },
  "numberOfExcludedFiles" : 36,
  "excludedExtensions" : {
    "" : 3,
    "babelrc" : 1,
    "gitignore" : 4,
    "dockerfile" : 1,
    "png" : 5,
    "dockerignore" : 1,
    "gitattributes" : 1,
    "kts" : 2,
    "jspf" : 10,
    "txt" : 1,
    "xml" : 1,
    "json" : 1,
    "editorconfig" : 1,
    "jar" : 1,
    "properties" : 1,
    "ts" : 1,
    "yaml" : 1
  },
  "analysisStartTimeMs" : 1768757722366,
  "maxLinesOfCode" : 8440,
  "maxFileCount" : 200
}