{
  "metadata" : {
    "name" : "JetBrains / kotless",
    "description" : "Kotlin Serverless Framework",
    "tooltip" : "",
    "logoLink" : "https://avatars.githubusercontent.com/JetBrains",
    "links" : [ {
      "label" : "GitHub Repo",
      "href" : "https://github.com/JetBrains/kotless.git"
    } ]
  },
  "metricsList" : {
    "metrics" : [ {
      "id" : "TOTAL_NUMBER_OF_FILES",
      "value" : 319,
      "description" : "Total number of files in the source folder"
    }, {
      "id" : "NUMBER_OF_FILES_MAIN",
      "value" : 213,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN",
      "value" : 6216,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KT",
      "value" : 187,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KT",
      "value" : 5803,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KTS",
      "value" : 24,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KTS",
      "value" : 387,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_XML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_XML",
      "value" : 26,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST",
      "value" : 52,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_KT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_KT",
      "value" : 37,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_HCL",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_HCL",
      "value" : 15,
      "description" : null
    }, {
      "id" : "TEST_VS_MAIN_LINES_OF_CODE_PERCENTAGE",
      "value" : 0.83,
      "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" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT",
      "value" : 68,
      "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" : 68,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER",
      "value" : 82,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER",
      "value" : 7186,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_TF",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_TF",
      "value" : 3519,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_KT",
      "value" : 45,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_KT",
      "value" : 2039,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_CSS",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_CSS",
      "value" : 632,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_MD",
      "value" : 4,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_MD",
      "value" : 401,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_KTS",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_KTS",
      "value" : 243,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_TXT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_TXT",
      "value" : 169,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_JS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_JS",
      "value" : 114,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_BAT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_BAT",
      "value" : 68,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_PROPERTIES",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_PROPERTIES",
      "value" : 1,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGINS",
      "value" : 27,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGINS",
      "value" : 1179,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGINS_EXT_KT",
      "value" : 26,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGINS_EXT_KT",
      "value" : 1123,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_PLUGINS_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_PLUGINS_EXT_KTS",
      "value" : 56,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SCHEMA",
      "value" : 7,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SCHEMA",
      "value" : 178,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SCHEMA_EXT_KT",
      "value" : 6,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SCHEMA_EXT_KT",
      "value" : 167,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_SCHEMA_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_SCHEMA_EXT_KTS",
      "value" : 11,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 90,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 90,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_MODEL",
      "value" : 13,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_MODEL",
      "value" : 240,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_MODEL_EXT_KT",
      "value" : 12,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_MODEL_EXT_KT",
      "value" : 235,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_MODEL_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_MODEL_EXT_KTS",
      "value" : 5,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_BUILDSRC",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_BUILDSRC",
      "value" : 26,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KT",
      "value" : 14,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_BUILDSRC_EXT_KTS",
      "value" : 12,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ENGINE",
      "value" : 43,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ENGINE",
      "value" : 1443,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ENGINE_EXT_KT",
      "value" : 42,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ENGINE_EXT_KT",
      "value" : 1428,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ENGINE_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ENGINE_EXT_KTS",
      "value" : 15,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_DSL",
      "value" : 119,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_DSL",
      "value" : 3060,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_DSL_EXT_KT",
      "value" : 100,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_DSL_EXT_KT",
      "value" : 2836,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_DSL_EXT_KTS",
      "value" : 17,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_DSL_EXT_KTS",
      "value" : 198,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_DSL_EXT_XML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_DSL_EXT_XML",
      "value" : 26,
      "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" : 0,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_TODOS",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 213,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 6216,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 187,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 5803,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 24,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 387,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 26,
      "description" : null
    }, {
      "id" : "NEGLIGIBLE_RISK_FILE_SIZE_COUNT",
      "value" : 210,
      "description" : "Number of  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_COUNT",
      "value" : 3,
      "description" : "Number of  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_COUNT",
      "value" : 0,
      "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" : 5836,
      "description" : "Lines of code in  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_LOC",
      "value" : 380,
      "description" : "Lines of code in  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_LOC",
      "value" : 0,
      "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" : 189,
      "description" : "Number of units"
    }, {
      "id" : "LINES_OF_CODE_IN_UNITS",
      "value" : 1974,
      "description" : "Lines of code in units"
    }, {
      "id" : "LINES_OF_CODE_OUTSIDE_UNITS",
      "value" : 4242,
      "description" : "Lines of code in units"
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_LOC",
      "value" : 612,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 31.003039513677813,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_COUNT",
      "value" : 125,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_LOC",
      "value" : 601,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_PERCENTAGE",
      "value" : 30.44579533941236,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_COUNT",
      "value" : 41,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_LOC",
      "value" : 577,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_PERCENTAGE",
      "value" : 29.229989868287742,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_COUNT",
      "value" : 20,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_LOC",
      "value" : 184,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_PERCENTAGE",
      "value" : 9.321175278622087,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_COUNT",
      "value" : 3,
      "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_PLUGINS_NEGLIGIBLE_RISK_LOC",
      "value" : 134,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 61.46788990825688,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_NEGLIGIBLE_RISK_COUNT",
      "value" : 33,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_LOW_RISK_LOC",
      "value" : 59,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_LOW_RISK_PERCENTAGE",
      "value" : 27.06422018348624,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_LOW_RISK_COUNT",
      "value" : 4,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_MEDIUM_RISK_LOC",
      "value" : 25,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_MEDIUM_RISK_PERCENTAGE",
      "value" : 11.46788990825688,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_MEDIUM_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_PLUGINS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_LOC",
      "value" : 43,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_COUNT",
      "value" : 8,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_SCHEMA_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_NEGLIGIBLE_RISK_LOC",
      "value" : 17,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_NEGLIGIBLE_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_MODEL_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_NEGLIGIBLE_RISK_LOC",
      "value" : 84,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 11.428571428571429,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_NEGLIGIBLE_RISK_COUNT",
      "value" : 16,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_LOW_RISK_LOC",
      "value" : 237,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_LOW_RISK_PERCENTAGE",
      "value" : 32.244897959183675,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_LOW_RISK_COUNT",
      "value" : 15,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_MEDIUM_RISK_LOC",
      "value" : 230,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_MEDIUM_RISK_PERCENTAGE",
      "value" : 31.292517006802722,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_MEDIUM_RISK_COUNT",
      "value" : 8,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_HIGH_RISK_LOC",
      "value" : 184,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_HIGH_RISK_PERCENTAGE",
      "value" : 25.034013605442176,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_HIGH_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ENGINE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_NEGLIGIBLE_RISK_LOC",
      "value" : 334,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 34.755463059313215,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_NEGLIGIBLE_RISK_COUNT",
      "value" : 63,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_LOW_RISK_LOC",
      "value" : 305,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_LOW_RISK_PERCENTAGE",
      "value" : 31.737773152965662,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_LOW_RISK_COUNT",
      "value" : 22,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_MEDIUM_RISK_LOC",
      "value" : 322,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_MEDIUM_RISK_PERCENTAGE",
      "value" : 33.50676378772113,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_MEDIUM_RISK_COUNT",
      "value" : 11,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_DSL_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 612,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 31.003039513677813,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 125,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_LOC",
      "value" : 601,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_PERCENTAGE",
      "value" : 30.44579533941236,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_COUNT",
      "value" : 41,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_LOC",
      "value" : 577,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_PERCENTAGE",
      "value" : 29.229989868287742,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_COUNT",
      "value" : 20,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_LOC",
      "value" : 184,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_PERCENTAGE",
      "value" : 9.321175278622087,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_COUNT",
      "value" : 3,
      "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" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_LOC",
      "value" : 1926,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 97.56838905775076,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_COUNT",
      "value" : 187,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_LOC",
      "value" : 48,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_PERCENTAGE",
      "value" : 2.43161094224924,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_COUNT",
      "value" : 2,
      "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_PLUGINS_NEGLIGIBLE_RISK_LOC",
      "value" : 218,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_NEGLIGIBLE_RISK_COUNT",
      "value" : 38,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_PLUGINS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_LOC",
      "value" : 43,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_NEGLIGIBLE_RISK_COUNT",
      "value" : 8,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_SCHEMA_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_NEGLIGIBLE_RISK_LOC",
      "value" : 17,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_NEGLIGIBLE_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_MODEL_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_NEGLIGIBLE_RISK_LOC",
      "value" : 735,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_NEGLIGIBLE_RISK_COUNT",
      "value" : 42,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ENGINE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_NEGLIGIBLE_RISK_LOC",
      "value" : 913,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 95.00520291363163,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_NEGLIGIBLE_RISK_COUNT",
      "value" : 94,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_LOW_RISK_LOC",
      "value" : 48,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_LOW_RISK_PERCENTAGE",
      "value" : 4.994797086368366,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_LOW_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_DSL_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 1926,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 97.56838905775076,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 187,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_LOC",
      "value" : 48,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_PERCENTAGE",
      "value" : 2.43161094224924,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_COUNT",
      "value" : 2,
      "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" : "FILE_CHANGE_HISTORY_TOTAL_AGE_DAYS",
      "value" : 2407,
      "description" : "The age of the repository in days"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ACTIVE_DAYS",
      "value" : 117,
      "description" : "The number of days with at least one file change"
    }, {
      "id" : "FILE_CHANGE_HISTORY_WEEKS",
      "value" : 145,
      "description" : "The number of weeks"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ESTIMATED_WORKING_DAYS",
      "value" : 725,
      "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" : 0,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_COUNT",
      "value" : 213,
      "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" : 0,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_LOC",
      "value" : 6216,
      "description" : "Number of files 366+ days days old"
    }, {
      "id" : "NUMBER_OF_CONTRIBUTORS",
      "value" : 20,
      "description" : "Number of contributors"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATES",
      "value" : 11,
      "description" : "Number of duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_FILES_WITH_DUPLICATES",
      "value" : 20,
      "description" : "Number of files with duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES",
      "value" : 214,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES",
      "value" : 4141,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE",
      "value" : 5.1678338565563875,
      "description" : "Duplication percentage"
    }, {
      "id" : "UNIT_DUPLICATES_COUNT",
      "value" : 1,
      "description" : "Unit duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ENGINE",
      "value" : 48,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ENGINE",
      "value" : 48,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_ENGINE",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_DSL",
      "value" : 142,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_DSL",
      "value" : 142,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_DSL",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_PLUGINS",
      "value" : 24,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_PLUGINS",
      "value" : 24,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_PLUGINS",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_SCHEMA",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_SCHEMA",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_SCHEMA",
      "value" : "NaN",
      "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_MODEL",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_MODEL",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_MODEL",
      "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" : 186,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KT",
      "value" : 3833,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KT",
      "value" : 4.852595877902426,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_KTS",
      "value" : 12,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KTS",
      "value" : 292,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KTS",
      "value" : 4.109589041095891,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_XML",
      "value" : 16,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_XML",
      "value" : 16,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_XML",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "TOTAL_ANALYSIS_TIME_IN_MILLIS",
      "value" : 1106,
      "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" : 6216,
          "description" : null
        },
        "status" : "OK"
      }, {
        "control" : {
          "metric" : "DUPLICATION_PERCENTAGE",
          "description" : "System duplication",
          "desiredRange" : {
            "min" : "0",
            "max" : "5",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "DUPLICATION_PERCENTAGE",
          "value" : 5.1678338565563875,
          "description" : "Duplication percentage"
        },
        "status" : "TOLERANT"
      }, {
        "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" : 319,
  "mainAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 213,
    "linesOfCode" : 6216,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 187,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 24,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 2,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 5803,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 387,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 26,
      "description" : [ ]
    } ]
  },
  "testAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 3,
    "linesOfCode" : 52,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.hcl",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 37,
      "description" : [ ]
    }, {
      "name" : "  *.hcl",
      "value" : 15,
      "description" : [ ]
    } ]
  },
  "generatedAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 0,
    "linesOfCode" : 0,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ ],
    "linesOfCodePerExtension" : [ ]
  },
  "buildAndDeployAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 1,
    "linesOfCode" : 68,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.bat",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.bat",
      "value" : 68,
      "description" : [ ]
    } ]
  },
  "otherAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 82,
    "linesOfCode" : 7186,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.tf",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 45,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.md",
      "value" : 4,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.txt",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.bat",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.tf",
      "value" : 3519,
      "description" : [ ]
    }, {
      "name" : "  *.kt",
      "value" : 2039,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 632,
      "description" : [ ]
    }, {
      "name" : "  *.md",
      "value" : 401,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 243,
      "description" : [ ]
    }, {
      "name" : "  *.txt",
      "value" : 169,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 114,
      "description" : [ ]
    }, {
      "name" : "  *.bat",
      "value" : 68,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 1,
      "description" : [ ]
    } ]
  },
  "logicalDecompositionsAnalysisResults" : [ {
    "key" : "primary",
    "components" : [ {
      "name" : "plugins",
      "filesCount" : 27,
      "linesOfCode" : 1179,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 26,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1123,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 56,
        "description" : [ ]
      } ]
    }, {
      "name" : "schema",
      "filesCount" : 7,
      "linesOfCode" : 178,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 6,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 167,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 11,
        "description" : [ ]
      } ]
    }, {
      "name" : "ROOT",
      "filesCount" : 2,
      "linesOfCode" : 90,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kts",
        "value" : 2,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kts",
        "value" : 90,
        "description" : [ ]
      } ]
    }, {
      "name" : "model",
      "filesCount" : 13,
      "linesOfCode" : 240,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 12,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 235,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 5,
        "description" : [ ]
      } ]
    }, {
      "name" : "buildSrc",
      "filesCount" : 2,
      "linesOfCode" : 26,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 14,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 12,
        "description" : [ ]
      } ]
    }, {
      "name" : "engine",
      "filesCount" : 43,
      "linesOfCode" : 1443,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 42,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1428,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 15,
        "description" : [ ]
      } ]
    }, {
      "name" : "dsl",
      "filesCount" : 119,
      "linesOfCode" : 3060,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 100,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 17,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 2,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 2836,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 198,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 26,
        "description" : [ ]
      } ]
    } ],
    "componentDependencies" : [ ],
    "componentDependenciesErrors" : [ ],
    "logicalDecomposition" : {
      "name" : "primary",
      "scope" : "main",
      "filters" : [ ],
      "componentsFolderDepth" : 1,
      "minComponentsCount" : 0,
      "components" : [ {
        "name" : "plugins",
        "sourceFileFilters" : [ {
          "pathPattern" : "./plugins/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "schema",
        "sourceFileFilters" : [ {
          "pathPattern" : "./schema/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "ROOT",
        "sourceFileFilters" : [ {
          "pathPattern" : "./.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        }, {
          "pathPattern" : "./plugins/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./schema/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./model/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./buildSrc/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./engine/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./dsl/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "model",
        "sourceFileFilters" : [ {
          "pathPattern" : "./model/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "buildSrc",
        "sourceFileFilters" : [ {
          "pathPattern" : "./buildSrc/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "engine",
        "sourceFileFilters" : [ {
          "pathPattern" : "./engine/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "dsl",
        "sourceFileFilters" : [ {
          "pathPattern" : "./dsl/.*",
          "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" : "plugins",
      "value" : 27,
      "description" : [ ]
    }, {
      "name" : "schema",
      "value" : 7,
      "description" : [ ]
    }, {
      "name" : "ROOT",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "model",
      "value" : 13,
      "description" : [ ]
    }, {
      "name" : "buildSrc",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "engine",
      "value" : 43,
      "description" : [ ]
    }, {
      "name" : "dsl",
      "value" : 119,
      "description" : [ ]
    } ],
    "linesOfCodePerComponent" : [ {
      "name" : "plugins",
      "value" : 1179,
      "description" : [ ]
    }, {
      "name" : "schema",
      "value" : 178,
      "description" : [ ]
    }, {
      "name" : "ROOT",
      "value" : 90,
      "description" : [ ]
    }, {
      "name" : "model",
      "value" : 240,
      "description" : [ ]
    }, {
      "name" : "buildSrc",
      "value" : 26,
      "description" : [ ]
    }, {
      "name" : "engine",
      "value" : 1443,
      "description" : [ ]
    }, {
      "name" : "dsl",
      "value" : 3060,
      "description" : [ ]
    } ]
  } ],
  "concernsAnalysisResults" : [ {
    "key" : "general",
    "concerns" : [ {
      "name" : "TODOs",
      "filesCount" : 0,
      "linesOfCode" : 0,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ ],
      "linesOfCodePerExtension" : [ ]
    }, {
      "name" : "Unclassified",
      "filesCount" : 213,
      "linesOfCode" : 6216,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 187,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 24,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 2,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 5803,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 387,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 26,
        "description" : [ ]
      } ]
    } ],
    "concernsGroup" : null,
    "fileCountPerConcern" : [ {
      "name" : "TODOs",
      "value" : 0,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 213,
      "description" : [ ]
    } ],
    "linesOfCodePerConcern" : [ {
      "name" : "TODOs",
      "value" : 0,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 6216,
      "description" : [ ]
    } ]
  } ],
  "foundTags" : [ ],
  "filesAnalysisResults" : {
    "overallFileSizeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 5836,
      "lowRiskValue" : 380,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 3,
      "negligibleRiskCount" : 210,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 93.88674388674389,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 6.113256113256114,
      "totalValue" : 6216,
      "totalCount" : 213
    },
    "fileSizeDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 5423,
      "lowRiskValue" : 380,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 3,
      "negligibleRiskCount" : 184,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 93.4516629329657,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 6.548337067034293,
      "totalValue" : 5803,
      "totalCount" : 187
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 387,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 24,
      "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" : 387,
      "totalCount" : 24
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 26,
      "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" : 26,
      "totalCount" : 2
    } ],
    "fileSizeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "fileSizeDistributionPerComponent" : [ {
        "key" : "plugins",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 1011,
        "lowRiskValue" : 168,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 26,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 85.75063613231552,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 14.249363867684478,
        "totalValue" : 1179,
        "totalCount" : 27
      }, {
        "key" : "schema",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 178,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 7,
        "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" : 178,
        "totalCount" : 7
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 90,
        "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" : 90,
        "totalCount" : 2
      }, {
        "key" : "model",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 240,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 13,
        "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" : 240,
        "totalCount" : 13
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 26,
        "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" : 26,
        "totalCount" : 2
      }, {
        "key" : "engine",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 1341,
        "lowRiskValue" : 102,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 42,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 92.93139293139293,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 7.0686070686070686,
        "totalValue" : 1443,
        "totalCount" : 43
      }, {
        "key" : "dsl",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 2950,
        "lowRiskValue" : 110,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 118,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 96.40522875816994,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 3.5947712418300655,
        "totalValue" : 3060,
        "totalCount" : 119
      } ]
    } ],
    "longestFiles" : [ {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessGradleConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 168,
      "unitsCount" : 11,
      "unitsMcCabeIndexSum" : 11,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 110,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 77
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
      "extension" : "kt",
      "linesOfCode" : 84,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Permission.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Converters.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 35
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Links.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessLocalTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 53
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/resource/dynamic/LambdaFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 71,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 54
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/KotlessLocalRunTask.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 68,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/permission/PermissionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/DynamicHandler.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 45
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/model/AwsHttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "plugins/gradle/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 56,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/reflection/ReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/ProcessorContext.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/dynamic/DynamicRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AWSGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 37
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/annotation/Getters.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesDispatcher.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/DefaultConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/config/EntrypointProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 47,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 23
    } ],
    "filesWithMostUnits" : [ {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessGradleConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 168,
      "unitsCount" : 11,
      "unitsMcCabeIndexSum" : 11,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/ProcessorContext.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/reflection/ReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Extensions.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSL.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Application.kt",
      "extension" : "kt",
      "linesOfCode" : 42,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/LocalServer.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 43,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/SubTypesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 41,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/ClassOrObject.kt",
      "extension" : "kt",
      "linesOfCode" : 42,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Dependencies.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Archive.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/TypedStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Cron.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
      "extension" : "kt",
      "linesOfCode" : 84,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/event/ScheduledEventsFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 22
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessEngine.kt",
      "extension" : "kt",
      "linesOfCode" : 12,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/Scheduler.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 37
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/config/EntrypointProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 47,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/Parser.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/visitor/KtReferenceFollowingVisitor.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/common/dsl-common/src/main/kotlin/io/kotless/dsl/model/HttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformOperationTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformDownloadTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/KotlessLocalRunTask.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Downloads.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Schema.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Visitable.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/Optimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/functions/TFFunctions.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/ZipArchiveFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 38,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 77
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route/static/StaticRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    } ]
  },
  "filesHistoryAnalysisResults" : {
    "overallFileLastModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 6216,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 213,
      "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" : 6216,
      "totalCount" : 213
    },
    "overallFileFirstModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 6216,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 213,
      "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" : 6216,
      "totalCount" : 213
    },
    "overallFileChangeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 3580,
      "lowRiskValue" : 2512,
      "mediumRiskValue" : 124,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 61,
      "negligibleRiskCount" : 150,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 57.59330759330759,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 1.994851994851995,
      "lowRiskPercentage" : 40.41184041184041,
      "totalValue" : 6216,
      "totalCount" : 213
    },
    "overallContributorsCountDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 1,
      "mediumRiskThreshold" : 5,
      "highRiskThreshold" : 10,
      "veryHighRiskThreshold" : 25,
      "negligibleRiskValue" : 443,
      "lowRiskValue" : 5773,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 182,
      "negligibleRiskCount" : 31,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1",
      "lowRiskLabel" : "2-5",
      "mediumRiskLabel" : "6-10",
      "highRiskLabel" : "11-25",
      "veryHighRiskLabel" : "26+",
      "negligibleRiskPercentage" : 7.126769626769627,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 92.87323037323037,
      "totalValue" : 6216,
      "totalCount" : 213
    },
    "filesWithoutCommitHistoryCount" : 0,
    "filesWithoutCommitHistoryLinesOfCode" : 0,
    "changeDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 3446,
      "lowRiskValue" : 2357,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 50,
      "negligibleRiskCount" : 137,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 59.383077718421504,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 40.616922281578496,
      "totalValue" : 5803,
      "totalCount" : 187
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 108,
      "lowRiskValue" : 155,
      "mediumRiskValue" : 124,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 11,
      "negligibleRiskCount" : 11,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 27.906976744186046,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 32.041343669250644,
      "lowRiskPercentage" : 40.05167958656331,
      "totalValue" : 387,
      "totalCount" : 24
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 26,
      "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" : 26,
      "totalCount" : 2
    } ],
    "lastModifiedDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 5803,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 187,
      "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" : 5803,
      "totalCount" : 187
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 387,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 24,
      "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" : 387,
      "totalCount" : 24
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 26,
      "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" : 26,
      "totalCount" : 2
    } ],
    "firstModifiedDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 5803,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 187,
      "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" : 5803,
      "totalCount" : 187
    }, {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 387,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 24,
      "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" : 387,
      "totalCount" : 24
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 26,
      "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" : 26,
      "totalCount" : 2
    } ],
    "changeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "plugins",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 342,
        "lowRiskValue" : 781,
        "mediumRiskValue" : 56,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 16,
        "negligibleRiskCount" : 10,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 29.00763358778626,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 4.749787955894826,
        "lowRiskPercentage" : 66.24257845631891,
        "totalValue" : 1179,
        "totalCount" : 27
      }, {
        "key" : "schema",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 66,
        "lowRiskValue" : 112,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 4,
        "negligibleRiskCount" : 3,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 37.07865168539326,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 62.92134831460674,
        "totalValue" : 178,
        "totalCount" : 7
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 22,
        "mediumRiskValue" : 68,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 1,
        "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" : 75.55555555555556,
        "lowRiskPercentage" : 24.444444444444443,
        "totalValue" : 90,
        "totalCount" : 2
      }, {
        "key" : "model",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 114,
        "lowRiskValue" : 126,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 3,
        "negligibleRiskCount" : 10,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 47.5,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 52.5,
        "totalValue" : 240,
        "totalCount" : 13
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 26,
        "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" : 26,
        "totalCount" : 2
      }, {
        "key" : "engine",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 677,
        "lowRiskValue" : 766,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 18,
        "negligibleRiskCount" : 25,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 46.916146916146914,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 53.083853083853086,
        "totalValue" : 1443,
        "totalCount" : 43
      }, {
        "key" : "dsl",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 2355,
        "lowRiskValue" : 705,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 19,
        "negligibleRiskCount" : 100,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 76.96078431372548,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 23.03921568627451,
        "totalValue" : 3060,
        "totalCount" : 119
      } ]
    } ],
    "firstModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "plugins",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1179,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 27,
        "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" : 1179,
        "totalCount" : 27
      }, {
        "key" : "schema",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 178,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 7,
        "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" : 178,
        "totalCount" : 7
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 90,
        "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" : 90,
        "totalCount" : 2
      }, {
        "key" : "model",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 240,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 13,
        "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" : 240,
        "totalCount" : 13
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 26,
        "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" : 26,
        "totalCount" : 2
      }, {
        "key" : "engine",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1443,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 43,
        "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" : 1443,
        "totalCount" : 43
      }, {
        "key" : "dsl",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 3060,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 119,
        "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" : 3060,
        "totalCount" : 119
      } ]
    } ],
    "lastModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "plugins",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1179,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 27,
        "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" : 1179,
        "totalCount" : 27
      }, {
        "key" : "schema",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 178,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 7,
        "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" : 178,
        "totalCount" : 7
      }, {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 90,
        "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" : 90,
        "totalCount" : 2
      }, {
        "key" : "model",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 240,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 13,
        "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" : 240,
        "totalCount" : 13
      }, {
        "key" : "buildSrc",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 26,
        "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" : 26,
        "totalCount" : 2
      }, {
        "key" : "engine",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1443,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 43,
        "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" : 1443,
        "totalCount" : 43
      }, {
        "key" : "dsl",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 3060,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 119,
        "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" : 3060,
        "totalCount" : 119
      } ]
    } ],
    "oldestFiles" : [ {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 68,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 56,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "schema/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/DSL.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/utils/Text.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/HTTP.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/functions/TFFunctions.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Schema.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Permission.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Converters.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/KotlessEngine.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/Optimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/SchemaOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/OptimizationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSL.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/URIPath.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSLTag.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/TypedStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Downloads.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Storage.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Cron.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Visitable.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Event.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Extensions.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 110,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessCall.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessEngine.kt",
      "extension" : "kt",
      "linesOfCode" : 12,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/KTorParser.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/DSLType.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/utils/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/lang/event/Events.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/lang/LambdaWarming.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-local/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/infra/TFOutput.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "youngestFiles" : [ {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/events/EventsReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/events/EventsStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/event/ScheduledEventsFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/permission/AWSPermission.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-azure/src/main/kotlin/io/kotless/dsl/cloud/azure/Permissions.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessGradleConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 168,
      "unitsCount" : 11,
      "unitsMcCabeIndexSum" : 11,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 35
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/permission/PermissionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/model/AwsHttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/ProcessorContext.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/annotation/Getters.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/config/EntrypointProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 47,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 43,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/ClassOrObject.kt",
      "extension" : "kt",
      "linesOfCode" : 42,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/SubTypesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 41,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/Parser.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/visitor/KtReferenceFollowingVisitor.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Arguments.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/infra/TFConfigFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 19
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsDispatcher.kt",
      "extension" : "kt",
      "linesOfCode" : 28,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/analysis/ResolveUtil.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Functions.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "dsl/common/dsl-common/src/main/kotlin/io/kotless/dsl/model/HttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/analysis/EnvironmentManager.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Variables.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 19,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/analysis/ParseUtil.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/Local.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-azure/src/main/kotlin/io/kotless/dsl/cloud/azure/model/AzureHttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/LocalParser.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/References.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/errors/KtElementError.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/common/dsl-common/src/main/kotlin/io/kotless/dsl/model/HttpResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-common/src/main/kotlin/io/kotless/dsl/utils/JSON.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/Processor.kt",
      "extension" : "kt",
      "linesOfCode" : 12,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "dsl/common/dsl-common/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/DSLDescriptor.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/visitor/KtDefaultVisitor.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/Permissions.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/errors/Exceptions.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-azure/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/analysis/KotlinLightVirtualFile.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/annotation/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostRecentlyChangedFiles" : [ {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/event/Scheduled.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 56,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang-local/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/event/ScheduledEventsFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessGradleConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 168,
      "unitsCount" : 11,
      "unitsMcCabeIndexSum" : 11,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 110,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 77
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
      "extension" : "kt",
      "linesOfCode" : 84,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Permission.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Converters.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 35
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Links.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 53
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/resource/dynamic/LambdaFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 71,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 54
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 68,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/permission/PermissionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/DynamicHandler.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 45
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/model/AwsHttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/reflection/ReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/ProcessorContext.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/dynamic/DynamicRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AWSGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 37
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/annotation/Getters.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesDispatcher.kt",
      "extension" : "kt",
      "linesOfCode" : 49,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/config/EntrypointProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 47,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 43,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 33
    } ],
    "mostPreviouslyChangedFiles" : [ {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/SchemaOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/Optimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/utils/Text.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/OptimizationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/KTorParser.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Annotations.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Extensions.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/SpringParser.kt",
      "extension" : "kt",
      "linesOfCode" : 12,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/HTTP.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang-local/src/main/kotlin/io/kotless/local/spring/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Constants.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/AWSUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Visitable.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Cron.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/URIPath.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/TypedStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSLTag.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Event.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/utils/Storage.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionException.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/LambdaInit.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/LambdaWarming.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RouteKey.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/Environment.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/KotlessParser.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/config/KotlessAppConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/HttpRequestInterceptor.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Responses.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/KotlessContext.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Annotations.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/DefaultConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/DSLType.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/resource/StaticResource.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Groups.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/KtorDescriptor.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Schema.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/DSL.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Archive.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessLocalTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/resources/logback.xml",
      "extension" : "xml",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/resources/logback.xml",
      "extension" : "xml",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Accessors.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/KotlessLocalRunTask.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformOperationTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    } ],
    "mostChangedFiles" : [ {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 68,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 56,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 110,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Converters.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Permission.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/KotlessLocalRunTask.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/KotlessEngine.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessDeployTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 41,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-local/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/functions/TFFunctions.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSL.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformDownloadTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 77
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/DSL.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/URIPath.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Runtime.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/HTTP.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 45
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessLocalTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/static/StaticResourceFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-local/src/main/kotlin/io/kotless/local/ktor/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Schema.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route/dynamic/DynamicRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/CertificateFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Extensions.kt",
      "extension" : "kt",
      "linesOfCode" : 37,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 27
    } ],
    "filesWithMostContributors" : [ {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 68,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/Permission.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 56,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 110,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 85,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 51,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "engine/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessDeployTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 41,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/KotlessEngine.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Converters.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/Webapp.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 66,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/KotlessConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 9,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformDownloadTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessDSL.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/functions/TFFunctions.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 102,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 77
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 31
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-local/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Runtime.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "model/src/main/kotlin/io/kotless/HTTP.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 28
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/static/StaticResourceFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
      "extension" : "kt",
      "linesOfCode" : 84,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route/dynamic/DynamicRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/CertificateFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-local/src/main/kotlin/io/kotless/local/ktor/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 75,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformOperationTask.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/resource/Lambda.kt",
      "extension" : "kt",
      "linesOfCode" : 16,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/resource/dynamic/LambdaFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 71,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 54
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 35
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/action/GlobalActionsProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/DynamicHandler.kt",
      "extension" : "kt",
      "linesOfCode" : 62,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/dsl/KotlessGradleConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 168,
      "unitsCount" : 11,
      "unitsMcCabeIndexSum" : 11,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/infra/TFOutput.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/GenerationFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route/static/StaticRouteFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    } ],
    "filesWithLeastContributors" : [ {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/DefaultConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 48,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 30
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Accessors.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessRuntimeTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Archive.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/StaticHandler.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Annotations.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/utils/Text.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/KotlessContext.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang-local/src/main/kotlin/io/kotless/local/spring/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/Optimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/ktor/ktor-lang/src/main/resources/logback.xml",
      "extension" : "xml",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/resources/logback.xml",
      "extension" : "xml",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Responses.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/Main.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/HttpRequestInterceptor.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/config/KotlessAppConfig.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/KtorDescriptor.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/KTorParser.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/KotlessParser.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/Environment.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/gradle/Groups.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/resource/StaticResource.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/SchemaOptimizer.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/opt/OptimizationContext.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RouteKey.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/LambdaWarming.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/LambdaInit.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionException.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/lang/http/Links.kt",
      "extension" : "kt",
      "linesOfCode" : 74,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessLocalTasks.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/KotlessLocalRunTask.kt",
      "extension" : "kt",
      "linesOfCode" : 69,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 27
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesStorage.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 45
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/DynamicRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "dsl/common/cloud/dsl-common-aws/src/main/kotlin/io/kotless/dsl/cloud/aws/model/AwsHttpRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/reflection/ReflectionScanner.kt",
      "extension" : "kt",
      "linesOfCode" : 55,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/ProcessorContext.kt",
      "extension" : "kt",
      "linesOfCode" : 53,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/annotation/Getters.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 25
    }, {
      "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/StaticRoutesProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 43,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 33
    }, {
      "relativePath" : "schema/src/main/kotlin/io/kotless/Application.kt",
      "extension" : "kt",
      "linesOfCode" : 42,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 16
    }, {
      "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/ClassOrObject.kt",
      "extension" : "kt",
      "linesOfCode" : 42,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "dsl/spring/spring-boot-lang/src/main/kotlin/io/kotless/dsl/spring/Kotless.kt",
      "extension" : "kt",
      "linesOfCode" : 41,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 19
    } ],
    "firstDate" : "2019-06-18",
    "latestDate" : "2022-03-28",
    "daysBetweenFirstAndLastDate" : 1015,
    "weeks" : 145,
    "estimatedWorkindDays" : 725,
    "activeDays" : 117,
    "ageInDays" : 2407,
    "historyPerExtensionPerYear" : [ {
      "extension" : "kts",
      "year" : "2019",
      "commitsCount" : 53,
      "contributors" : [ "suushiemaniac@gmail.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "md",
      "year" : "2020",
      "commitsCount" : 45,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "xml",
      "year" : "2021",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2021",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2020",
      "commitsCount" : 19,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "js",
      "year" : "2019",
      "commitsCount" : 6,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "md",
      "year" : "2021",
      "commitsCount" : 10,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "xml",
      "year" : "2020",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "hcl",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "apng",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "editorconfig",
      "year" : "2019",
      "commitsCount" : 2,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "kt",
      "year" : "2021",
      "commitsCount" : 28,
      "contributors" : [ "take7010@gmail.com", "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com", "marton.toth@supercharge.io" ]
    }, {
      "extension" : "kt",
      "year" : "2022",
      "commitsCount" : 1,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "properties",
      "year" : "2019",
      "commitsCount" : 7,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "kt",
      "year" : "2020",
      "commitsCount" : 133,
      "contributors" : [ "michael.kuzmin@jetbrains.com", "vladislav.tankov@jetbrains.com", "mykyta.sikriier@allegro.pl", "maido@producement.com", "igrekde@gmail.com", "x3mcoder@gmail.com", "sokatov@gmail.com", "peter.pribula@hotmail.com", "s-leigh@users.noreply.github.com", "yuppie-flu@users.noreply.github.com", "suushiemaniac@gmail.com", "xma@compusoftdevelopment.com", "vdtankov@gmail.com", "anstkras@gmail.com" ]
    }, {
      "extension" : "tf",
      "year" : "2019",
      "commitsCount" : 6,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "properties",
      "year" : "2020",
      "commitsCount" : 9,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "bat",
      "year" : "2019",
      "commitsCount" : 4,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "css",
      "year" : "2019",
      "commitsCount" : 6,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "jar",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2019",
      "commitsCount" : 4,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "apng",
      "year" : "2019",
      "commitsCount" : 5,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "jar",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "tf",
      "year" : "2021",
      "commitsCount" : 3,
      "contributors" : [ "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2019",
      "commitsCount" : 6,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "tf",
      "year" : "2020",
      "commitsCount" : 21,
      "contributors" : [ "michael.kuzmin@jetbrains.com", "yuppie-flu@users.noreply.github.com", "vladislav.tankov@jetbrains.com", "peter.pribula@hotmail.com", "vdtankov@gmail.com", "anstkras@gmail.com" ]
    }, {
      "extension" : "md",
      "year" : "2019",
      "commitsCount" : 43,
      "contributors" : [ "jean-michel.fayard@akelius.de", "vdtankov@gmail.com", "131809+fitzoh@users.noreply.github.com" ]
    }, {
      "extension" : "js",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "editorconfig",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2019",
      "commitsCount" : 4,
      "contributors" : [ "vdtankov@gmail.com" ]
    }, {
      "extension" : "css",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2021",
      "commitsCount" : 21,
      "contributors" : [ "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com", "yaroslav.russkih@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2020",
      "commitsCount" : 68,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "peter.pribula@hotmail.com", "vdtankov@gmail.com", "anstkras@gmail.com" ]
    }, {
      "extension" : "gitignore",
      "year" : "2020",
      "commitsCount" : 2,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2019",
      "commitsCount" : 135,
      "contributors" : [ "suushiemaniac@gmail.com", "vdtankov@gmail.com" ]
    }, {
      "extension" : "",
      "year" : "2020",
      "commitsCount" : 4,
      "contributors" : [ "vladislav.tankov@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2021",
      "commitsCount" : 3,
      "contributors" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ]
    } ]
  },
  "unitsAnalysisResults" : {
    "totalNumberOfUnits" : 189,
    "linesOfCodeInUnits" : 1974,
    "unitSizeRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 612,
      "lowRiskValue" : 601,
      "mediumRiskValue" : 577,
      "highRiskValue" : 184,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 41,
      "negligibleRiskCount" : 125,
      "mediumRiskCount" : 20,
      "highRiskCount" : 3,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 31.003039513677813,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 9.321175278622087,
      "mediumRiskPercentage" : 29.229989868287742,
      "lowRiskPercentage" : 30.44579533941236,
      "totalValue" : 1974,
      "totalCount" : 189
    },
    "conditionalComplexityRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 1926,
      "lowRiskValue" : 48,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 187,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 97.56838905775076,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 2.43161094224924,
      "totalValue" : 1974,
      "totalCount" : 189
    },
    "unitSizeRiskDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 612,
      "lowRiskValue" : 601,
      "mediumRiskValue" : 577,
      "highRiskValue" : 184,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 41,
      "negligibleRiskCount" : 125,
      "mediumRiskCount" : 20,
      "highRiskCount" : 3,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 31.003039513677813,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 9.321175278622087,
      "mediumRiskPercentage" : 29.229989868287742,
      "lowRiskPercentage" : 30.44579533941236,
      "totalValue" : 1974,
      "totalCount" : 189
    } ],
    "unitSizeRiskDistributionPerComponent" : [ [ {
      "key" : "plugins",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 134,
      "lowRiskValue" : 59,
      "mediumRiskValue" : 25,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 4,
      "negligibleRiskCount" : 33,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 61.46788990825688,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 11.46788990825688,
      "lowRiskPercentage" : 27.06422018348624,
      "totalValue" : 218,
      "totalCount" : 38
    }, {
      "key" : "schema",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 43,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 8,
      "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" : 43,
      "totalCount" : 8
    }, {
      "key" : "model",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 17,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 5,
      "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" : 17,
      "totalCount" : 5
    }, {
      "key" : "engine",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 84,
      "lowRiskValue" : 237,
      "mediumRiskValue" : 230,
      "highRiskValue" : 184,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 15,
      "negligibleRiskCount" : 16,
      "mediumRiskCount" : 8,
      "highRiskCount" : 3,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 11.428571428571429,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 25.034013605442176,
      "mediumRiskPercentage" : 31.292517006802722,
      "lowRiskPercentage" : 32.244897959183675,
      "totalValue" : 735,
      "totalCount" : 42
    }, {
      "key" : "dsl",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 334,
      "lowRiskValue" : 305,
      "mediumRiskValue" : 322,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 22,
      "negligibleRiskCount" : 63,
      "mediumRiskCount" : 11,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 34.755463059313215,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 33.50676378772113,
      "lowRiskPercentage" : 31.737773152965662,
      "totalValue" : 961,
      "totalCount" : 96
    } ] ],
    "longestUnits" : [ {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 77
      },
      "startLine" : 29,
      "endLine" : 110,
      "linesOfCode" : 77,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/resource/dynamic/LambdaFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 54
      },
      "startLine" : 22,
      "endLine" : 89,
      "linesOfCode" : 54,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 53
      },
      "startLine" : 23,
      "endLine" : 88,
      "linesOfCode" : 53,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handle()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/DynamicHandler.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 48
      },
      "startLine" : 17,
      "endLine" : 70,
      "linesOfCode" : 48,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/storage/StorageFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 45
      },
      "startLine" : 20,
      "endLine" : 71,
      "linesOfCode" : 45,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 45,
      "endLine" : 92,
      "linesOfCode" : 39,
      "mcCabeIndex" : 8,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun run()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
        "extension" : "kt",
        "linesOfCode" : 74,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 35
      },
      "startLine" : 45,
      "endLine" : 84,
      "linesOfCode" : 35,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/dynamic/DynamicRouteFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 23,
      "endLine" : 65,
      "linesOfCode" : 32,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun run()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 22,
      "endLine" : 56,
      "linesOfCode" : 31,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/info/InfoFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 30
      },
      "startLine" : 26,
      "endLine" : 60,
      "linesOfCode" : 30,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/route53/RecordFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 28
      },
      "startLine" : 22,
      "endLine" : 52,
      "linesOfCode" : 28,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRoleFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 28
      },
      "startLine" : 18,
      "endLine" : 53,
      "linesOfCode" : 28,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/StaticRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 28
      },
      "startLine" : 33,
      "endLine" : 66,
      "linesOfCode" : 28,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 37,
      "endLine" : 70,
      "linesOfCode" : 27,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun act()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 41,
      "endLine" : 71,
      "linesOfCode" : 25,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 34,
      "endLine" : 65,
      "linesOfCode" : 25,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun merge()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 24,
      "endLine" : 49,
      "linesOfCode" : 24,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/StaticRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 25,
      "endLine" : 53,
      "linesOfCode" : 23,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun collectJobs()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 37
      },
      "startLine" : 15,
      "endLine" : 42,
      "linesOfCode" : 23,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getResource()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/AbstractRouteFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 22
      },
      "startLine" : 23,
      "endLine" : 49,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/Parser.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 27,
      "endLine" : 53,
      "linesOfCode" : 22,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 6,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/ZipArchiveFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 21,
      "endLine" : 47,
      "linesOfCode" : 21,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 23,
      "endLine" : 47,
      "linesOfCode" : 21,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/infra/TFConfigFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 13,
      "endLine" : 34,
      "linesOfCode" : 20,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AWSGenerator.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 38,
      "endLine" : 59,
      "linesOfCode" : 20,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 37,
      "endLine" : 58,
      "linesOfCode" : 20,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/infra/TFConfigFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 19
      },
      "startLine" : 16,
      "endLine" : 35,
      "linesOfCode" : 19,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/event/ScheduledEventsFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 22
      },
      "startLine" : 17,
      "endLine" : 39,
      "linesOfCode" : 19,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getJob()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 16,
      "endLine" : 39,
      "linesOfCode" : 19,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/spring/spring-boot-lang/src/main/kotlin/io/kotless/dsl/spring/Kotless.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 19
      },
      "startLine" : 33,
      "endLine" : 56,
      "linesOfCode" : 19,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun apply()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 18
      },
      "startLine" : 27,
      "endLine" : 49,
      "linesOfCode" : 18,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/apigateway/DeploymentFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 22,
      "endLine" : 44,
      "linesOfCode" : 17,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 38,
      "endLine" : 60,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handle()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/StaticHandler.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 16,
      "endLine" : 34,
      "linesOfCode" : 17,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun convertTo()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/DefaultConversionService.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 17,
      "endLine" : 33,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 14,
      "endLine" : 31,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun start()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 62,
      "endLine" : 86,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/apigateway/DomainFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 16
      },
      "startLine" : 22,
      "endLine" : 41,
      "linesOfCode" : 16,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 16
      },
      "startLine" : 24,
      "endLine" : 41,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun optimize()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 55,
      "endLine" : 70,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/infra/ProvidersFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 15
      },
      "startLine" : 13,
      "endLine" : 29,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route53/RecordFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 15
      },
      "startLine" : 13,
      "endLine" : 30,
      "linesOfCode" : 15,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/events/ScheduledEventsProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 1,
        "linesOfCodeInUnits" : 15
      },
      "startLine" : 25,
      "endLine" : 45,
      "linesOfCode" : 15,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getRoutePath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/SpringAnnotationUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 75,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 39,
      "endLine" : 57,
      "linesOfCode" : 15,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun timeBinding()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
        "extension" : "kt",
        "linesOfCode" : 84,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 30,
      "endLine" : 43,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun toHttp()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 61,
      "endLine" : 77,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 37
      },
      "startLine" : 45,
      "endLine" : 60,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun executeOrFail()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 39,
      "endLine" : 51,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 6,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun proxy()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/filescontent/LambdaDescription.kt",
        "extension" : "kt",
        "linesOfCode" : 84,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 45,
      "endLine" : 57,
      "linesOfCode" : 13,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 42,
      "endLine" : 56,
      "linesOfCode" : 13,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ],
    "conditionalComplexityRiskDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 1926,
      "lowRiskValue" : 48,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 187,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 97.56838905775076,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 2.43161094224924,
      "totalValue" : 1974,
      "totalCount" : 189
    } ],
    "conditionalComplexityRiskDistributionPerComponent" : [ [ {
      "key" : "plugins",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 218,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 38,
      "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" : 218,
      "totalCount" : 38
    }, {
      "key" : "schema",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 43,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 8,
      "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" : 43,
      "totalCount" : 8
    }, {
      "key" : "model",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 17,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 5,
      "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" : 17,
      "totalCount" : 5
    }, {
      "key" : "engine",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 735,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 42,
      "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" : 735,
      "totalCount" : 42
    }, {
      "key" : "dsl",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 913,
      "lowRiskValue" : 48,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 94,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 95.00520291363163,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 4.994797086368366,
      "totalValue" : 961,
      "totalCount" : 96
    } ] ],
    "mostComplexUnits" : [ {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 45,
      "endLine" : 92,
      "linesOfCode" : 39,
      "mcCabeIndex" : 8,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "protected fun visitReferenceTree()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/visitor/KtReferenceFollowingVisitor.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 16
      },
      "startLine" : 47,
      "endLine" : 57,
      "linesOfCode" : 9,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/HandlerAWS.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 34,
      "endLine" : 65,
      "linesOfCode" : 25,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handleRequest()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/spring/spring-boot-lang/src/main/kotlin/io/kotless/dsl/spring/Kotless.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 19
      },
      "startLine" : 33,
      "endLine" : 56,
      "linesOfCode" : 19,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun parse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/Parser.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 27,
      "endLine" : 53,
      "linesOfCode" : 22,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 6,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getResource()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/AbstractRouteFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 22
      },
      "startLine" : 23,
      "endLine" : 49,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AWSGenerator.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 38,
      "endLine" : 59,
      "linesOfCode" : 20,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 37,
      "endLine" : 58,
      "linesOfCode" : 20,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handle()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/DynamicHandler.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 48
      },
      "startLine" : 17,
      "endLine" : 70,
      "linesOfCode" : 48,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processStaticFunctions()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 43,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 29,
      "endLine" : 39,
      "linesOfCode" : 11,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 5,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processClassesOrObjects()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/SubTypesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 15,
      "endLine" : 25,
      "linesOfCode" : 11,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processClasses()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/SubTypesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 27,
      "endLine" : 37,
      "linesOfCode" : 11,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processObjects()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/SubTypesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 39,
      "endLine" : 49,
      "linesOfCode" : 11,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun equals()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-common/src/main/kotlin/io/kotless/dsl/model/HttpRequest.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 16,
      "endLine" : 25,
      "linesOfCode" : 7,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun act()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/terraform/TerraformDownloadTask.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 8
      },
      "startLine" : 42,
      "endLine" : 52,
      "linesOfCode" : 8,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun start()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 62,
      "endLine" : 86,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun download()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/Downloads.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 14,
      "endLine" : 26,
      "linesOfCode" : 9,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun merge()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 24,
      "endLine" : 49,
      "linesOfCode" : 24,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/resource/dynamic/LambdaFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 54
      },
      "startLine" : 22,
      "endLine" : 89,
      "linesOfCode" : 54,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun run()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
        "extension" : "kt",
        "linesOfCode" : 74,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 35
      },
      "startLine" : 45,
      "endLine" : 84,
      "linesOfCode" : 35,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun handle()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/handler/StaticHandler.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 16,
      "endLine" : 34,
      "linesOfCode" : 17,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun  convertTo()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 30
      },
      "startLine" : 42,
      "endLine" : 53,
      "linesOfCode" : 12,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun  convertFrom()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/ConversionService.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 30
      },
      "startLine" : 56,
      "endLine" : 67,
      "linesOfCode" : 12,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 23,
      "endLine" : 47,
      "linesOfCode" : 21,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processClassesOrObjects()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 43,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 17,
      "endLine" : 27,
      "linesOfCode" : 11,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 5,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processStaticVariables()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/processor/AnnotationProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 43,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 33
      },
      "startLine" : 41,
      "endLine" : 51,
      "linesOfCode" : 11,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 5,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun visitKtElement()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/utils/psi/Expression.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 6,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 21,
      "endLine" : 25,
      "linesOfCode" : 4,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun apply()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/KotlessPlugin.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 18
      },
      "startLine" : 27,
      "endLine" : 49,
      "linesOfCode" : 18,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun execute()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 22,
      "endLine" : 33,
      "linesOfCode" : 12,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 6,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun executeOrFail()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/utils/CommandLine.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 25
      },
      "startLine" : 39,
      "endLine" : 51,
      "linesOfCode" : 13,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 6,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun optimize()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/opt/Optimizer.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 8
      },
      "startLine" : 8,
      "endLine" : 15,
      "linesOfCode" : 8,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun optimize()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 39
      },
      "startLine" : 55,
      "endLine" : 70,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun unlink()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/terraform/functions/TFFunctions.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 4
      },
      "startLine" : 29,
      "endLine" : 32,
      "linesOfCode" : 4,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/azure/resource/dynamic/FunctionFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 77
      },
      "startLine" : 29,
      "endLine" : 110,
      "linesOfCode" : 77,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 53
      },
      "startLine" : 23,
      "endLine" : 88,
      "linesOfCode" : 53,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/infra/ProvidersFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 15
      },
      "startLine" : 13,
      "endLine" : 29,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 27
      },
      "startLine" : 37,
      "endLine" : 70,
      "linesOfCode" : 27,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 16
      },
      "startLine" : 24,
      "endLine" : 41,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override suspend fun respondOutgoingContent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 41,
      "endLine" : 51,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "suspend fun toHttp()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/ktor/ktor-lang/src/main/kotlin/io/kotless/dsl/ktor/app/KotlessResponse.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 61,
      "endLine" : 77,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-parser/src/main/kotlin/io/kotless/parser/processor/route/DynamicRoutesProcessor.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 38,
      "endLine" : 60,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun start()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/Scheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 12
      },
      "startLine" : 9,
      "endLine" : 19,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun collectJobs()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 37
      },
      "startLine" : 15,
      "endLine" : 42,
      "linesOfCode" : 23,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun init()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/Application.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 16,
      "endLine" : 28,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun scan()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/app/http/RoutesStorage.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 11
      },
      "startLine" : 20,
      "endLine" : 32,
      "linesOfCode" : 11,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun convertTo()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/kotless-lang/src/main/kotlin/io/kotless/dsl/conversion/DefaultConversionService.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 17,
      "endLine" : 33,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getEvents()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/events/EventsReflectionScanner.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 17,
      "endLine" : 25,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun run()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 31
      },
      "startLine" : 22,
      "endLine" : 56,
      "linesOfCode" : 31,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 4,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getEvents()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsReflectionScanner.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 17,
      "endLine" : 25,
      "linesOfCode" : 7,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun process()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 14,
      "endLine" : 31,
      "linesOfCode" : 17,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ]
  },
  "duplicationAnalysisResults" : {
    "overallDuplication" : {
      "key" : "system",
      "numberOfDuplicates" : 11,
      "cleanedLinesOfCode" : 4141,
      "duplicatedLinesOfCode" : 214,
      "numberOfFilesWithDuplicates" : 20,
      "duplicationPercentage" : 5.1678338565563875
    },
    "duplicationPerComponent" : [ [ {
      "key" : "engine",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 945,
      "duplicatedLinesOfCode" : 48,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 5.079365079365079
    }, {
      "key" : "dsl",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 1950,
      "duplicatedLinesOfCode" : 142,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 7.282051282051282
    }, {
      "key" : "plugins",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 826,
      "duplicatedLinesOfCode" : 24,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 2.9055690072639226
    }, {
      "key" : "schema",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 123,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "ROOT",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 71,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "model",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 204,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    }, {
      "key" : "buildSrc",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 22,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    } ] ],
    "duplicationPerConcern" : [ ],
    "duplicationPerExtension" : [ {
      "key" : "kt",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 3833,
      "duplicatedLinesOfCode" : 186,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 4.852595877902426
    }, {
      "key" : "kts",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 292,
      "duplicatedLinesOfCode" : 12,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 4.109589041095891
    }, {
      "key" : "xml",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 16,
      "duplicatedLinesOfCode" : 16,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 100.0
    } ],
    "longestDuplicates" : [ {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AWSGenerator.kt",
          "extension" : "kt",
          "linesOfCode" : 51,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 4,
          "linesOfCodeInUnits" : 20
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 32,
        "endLine" : 58,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 28,
        "percentage" : 64.28571428571429,
        "blockSize" : 18
      }, {
        "sourceFile" : {
          "relativePath" : "engine/src/main/kotlin/io/kotless/gen/AzureGenerator.kt",
          "extension" : "kt",
          "linesOfCode" : 50,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 4,
          "linesOfCodeInUnits" : 20
        },
        "sourceFileCleanedLinesOfCode" : 26,
        "startLine" : 31,
        "endLine" : 57,
        "cleanedStartLine" : 9,
        "cleanedEndLine" : 26,
        "percentage" : 69.23076923076923,
        "blockSize" : 18
      } ],
      "blockSize" : 18
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsStorage.kt",
          "extension" : "kt",
          "linesOfCode" : 27,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 17,
        "startLine" : 1,
        "endLine" : 34,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 17,
        "percentage" : 100.0,
        "blockSize" : 17
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/events/EventsStorage.kt",
          "extension" : "kt",
          "linesOfCode" : 27,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 17,
        "startLine" : 1,
        "endLine" : 34,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 17,
        "percentage" : 100.0,
        "blockSize" : 17
      } ],
      "blockSize" : 17
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsReflectionScanner.kt",
          "extension" : "kt",
          "linesOfCode" : 31,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 7
        },
        "sourceFileCleanedLinesOfCode" : 17,
        "startLine" : 1,
        "endLine" : 36,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 17,
        "percentage" : 100.0,
        "blockSize" : 17
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/events/EventsReflectionScanner.kt",
          "extension" : "kt",
          "linesOfCode" : 31,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 7
        },
        "sourceFileCleanedLinesOfCode" : 17,
        "startLine" : 1,
        "endLine" : 36,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 17,
        "percentage" : 100.0,
        "blockSize" : 17
      } ],
      "blockSize" : 17
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-aws/src/main/kotlin/io/kotless/dsl/app/events/EventsDispatcher.kt",
          "extension" : "kt",
          "linesOfCode" : 28,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 17
        },
        "sourceFileCleanedLinesOfCode" : 16,
        "startLine" : 16,
        "endLine" : 27,
        "cleanedStartLine" : 7,
        "cleanedEndLine" : 16,
        "percentage" : 62.5,
        "blockSize" : 10
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/cloud/kotless-lang-azure/src/main/kotlin/io/kotless/dsl/HandlerAzure.kt",
          "extension" : "kt",
          "linesOfCode" : 66,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 31
        },
        "sourceFileCleanedLinesOfCode" : 45,
        "startLine" : 60,
        "endLine" : 71,
        "cleanedStartLine" : 36,
        "cleanedEndLine" : 45,
        "percentage" : 22.22222222222222,
        "blockSize" : 10
      } ],
      "blockSize" : 10
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/kotless-lang/src/main/resources/logback.xml",
          "extension" : "xml",
          "linesOfCode" : 13,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 8,
        "startLine" : 1,
        "endLine" : 12,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 8,
        "percentage" : 100.0,
        "blockSize" : 8
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/ktor/ktor-lang/src/main/resources/logback.xml",
          "extension" : "xml",
          "linesOfCode" : 13,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 8,
        "startLine" : 1,
        "endLine" : 12,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 8,
        "percentage" : 100.0,
        "blockSize" : 8
      } ],
      "blockSize" : 8
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/ktor/cloud/ktor-lang-aws/src/main/kotlin/io/kotless/dsl/ktor/KotlessAWS.kt",
          "extension" : "kt",
          "linesOfCode" : 72,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 8,
          "linesOfCodeInUnits" : 39
        },
        "sourceFileCleanedLinesOfCode" : 44,
        "startLine" : 32,
        "endLine" : 42,
        "cleanedStartLine" : 6,
        "cleanedEndLine" : 12,
        "percentage" : 15.909090909090908,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/ktor/cloud/ktor-lang-azure/src/main/kotlin/io/kotless/dsl/ktor/KotlessAzure.kt",
          "extension" : "kt",
          "linesOfCode" : 74,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 35
        },
        "sourceFileCleanedLinesOfCode" : 51,
        "startLine" : 31,
        "endLine" : 41,
        "cleanedStartLine" : 7,
        "cleanedEndLine" : 13,
        "percentage" : 13.72549019607843,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessGenerateTask.kt",
          "extension" : "kt",
          "linesOfCode" : 85,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 6
        },
        "sourceFileCleanedLinesOfCode" : 65,
        "startLine" : 51,
        "endLine" : 57,
        "cleanedStartLine" : 20,
        "cleanedEndLine" : 25,
        "percentage" : 9.23076923076923,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/gen/KotlessLocalGenerateTask.kt",
          "extension" : "kt",
          "linesOfCode" : 65,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 25
        },
        "sourceFileCleanedLinesOfCode" : 41,
        "startLine" : 31,
        "endLine" : 37,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 14.634146341463415,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/AutowarmJob.kt",
          "extension" : "kt",
          "linesOfCode" : 46,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 32
        },
        "sourceFileCleanedLinesOfCode" : 33,
        "startLine" : 49,
        "endLine" : 55,
        "cleanedStartLine" : 28,
        "cleanedEndLine" : 33,
        "percentage" : 18.181818181818183,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/kotless/kotless-lang-local/src/main/kotlin/io/kotless/local/scheduled/ScheduledJob.kt",
          "extension" : "kt",
          "linesOfCode" : 50,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 3,
          "linesOfCodeInUnits" : 37
        },
        "sourceFileCleanedLinesOfCode" : 38,
        "startLine" : 53,
        "endLine" : 59,
        "cleanedStartLine" : 33,
        "cleanedEndLine" : 38,
        "percentage" : 15.789473684210526,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
          "extension" : "kt",
          "linesOfCode" : 67,
          "unitsCount" : 4,
          "unitsMcCabeIndexSum" : 6,
          "linesOfCodeInUnits" : 27
        },
        "sourceFileCleanedLinesOfCode" : 47,
        "startLine" : 22,
        "endLine" : 30,
        "cleanedStartLine" : 4,
        "cleanedEndLine" : 9,
        "percentage" : 12.76595744680851,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "plugins/gradle/src/main/kotlin/io/kotless/plugin/gradle/tasks/local/LocalStackRunner.kt",
          "extension" : "kt",
          "linesOfCode" : 67,
          "unitsCount" : 4,
          "unitsMcCabeIndexSum" : 6,
          "linesOfCodeInUnits" : 27
        },
        "sourceFileCleanedLinesOfCode" : 47,
        "startLine" : 36,
        "endLine" : 44,
        "cleanedStartLine" : 12,
        "cleanedEndLine" : 17,
        "percentage" : 12.76595744680851,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "dsl/common/cloud/dsl-common-aws/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 15,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 12,
        "startLine" : 1,
        "endLine" : 10,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 6,
        "percentage" : 50.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "dsl/common/cloud/dsl-common-azure/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 9,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 7,
        "startLine" : 1,
        "endLine" : 10,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 6,
        "percentage" : 85.71428571428571,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
          "extension" : "kt",
          "linesOfCode" : 72,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 53
        },
        "sourceFileCleanedLinesOfCode" : 55,
        "startLine" : 44,
        "endLine" : 49,
        "cleanedStartLine" : 22,
        "cleanedEndLine" : 27,
        "percentage" : 10.909090909090908,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "engine/src/main/kotlin/io/kotless/gen/factory/aws/route/static/StaticRouteFactory.kt",
          "extension" : "kt",
          "linesOfCode" : 72,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 53
        },
        "sourceFileCleanedLinesOfCode" : 55,
        "startLine" : 73,
        "endLine" : 78,
        "cleanedStartLine" : 43,
        "cleanedEndLine" : 48,
        "percentage" : 10.909090909090908,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    } ],
    "mostFrequentDuplicates" : [ ]
  },
  "contributorsAnalysisResults" : {
    "latestCommitDate" : "2022-03-28",
    "contributors" : [ {
      "email" : "vdtankov@gmail.com",
      "userName" : "Vladislav Tankov",
      "commitsCount" : 249,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2019-06-18",
      "latestCommitDate" : "2022-03-28",
      "activeYears" : [ "2019", "2020", "2021", "2022" ],
      "commitDates" : [ "2022-03-28", "2021-12-16", "2021-12-10", "2021-10-20", "2021-10-19", "2021-10-08", "2021-09-27", "2021-07-17", "2021-04-19", "2021-02-08", "2021-02-01", "2020-12-25", "2020-12-11", "2020-12-09", "2020-11-14", "2020-10-27", "2020-10-20", "2020-09-14", "2020-08-30", "2020-08-24", "2020-08-04", "2020-07-29", "2020-06-02", "2020-05-31", "2020-03-08", "2020-03-02", "2020-02-08", "2020-01-25", "2020-01-07", "2020-01-06", "2020-01-05", "2020-01-04", "2020-01-03", "2020-01-02", "2020-01-01", "2019-12-30", "2019-12-11", "2019-11-03", "2019-11-02", "2019-11-01", "2019-10-27", "2019-10-26", "2019-10-25", "2019-10-24", "2019-10-23", "2019-10-22", "2019-10-21", "2019-10-19", "2019-10-17", "2019-10-14", "2019-10-13", "2019-10-12", "2019-10-11", "2019-10-10", "2019-10-09", "2019-10-08", "2019-10-07", "2019-10-06", "2019-10-05", "2019-10-04", "2019-10-03", "2019-10-02", "2019-09-15", "2019-07-21", "2019-07-20", "2019-07-18", "2019-07-17", "2019-07-14", "2019-06-24", "2019-06-21", "2019-06-20", "2019-06-19", "2019-06-18" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "vladislav.tankov@jetbrains.com",
      "userName" : "Vladislav Tankov",
      "commitsCount" : 116,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-05-22",
      "latestCommitDate" : "2021-05-23",
      "activeYears" : [ "2020", "2021" ],
      "commitDates" : [ "2021-05-23", "2021-01-31", "2020-10-11", "2020-10-09", "2020-10-08", "2020-09-21", "2020-09-08", "2020-08-28", "2020-08-25", "2020-08-14", "2020-08-08", "2020-08-06", "2020-08-04", "2020-07-31", "2020-07-30", "2020-07-29", "2020-06-02", "2020-05-31", "2020-05-30", "2020-05-29", "2020-05-28", "2020-05-27", "2020-05-26", "2020-05-25", "2020-05-24", "2020-05-22" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "dart.fk712@gmail.com",
      "userName" : "ValchukDmitry",
      "commitsCount" : 12,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-02-15",
      "latestCommitDate" : "2021-09-20",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-09-20", "2021-08-20", "2021-08-06", "2021-07-12", "2021-06-20", "2021-05-24", "2021-04-10", "2021-02-15" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "suushiemaniac@gmail.com",
      "userName" : "Gregor Billing",
      "commitsCount" : 7,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2019-12-12",
      "latestCommitDate" : "2020-01-04",
      "activeYears" : [ "2019", "2020" ],
      "commitDates" : [ "2020-01-04", "2019-12-12", "2019-12-18" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "anstkras@gmail.com",
      "userName" : "anstkras",
      "commitsCount" : 3,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-11-27",
      "latestCommitDate" : "2020-12-11",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-12-11", "2020-11-27" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "peter.pribula@hotmail.com",
      "userName" : "zaenk",
      "commitsCount" : 3,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-09-10",
      "latestCommitDate" : "2020-09-11",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-09-11", "2020-09-10" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "sokatov@gmail.com",
      "userName" : "Sergey Okatov",
      "commitsCount" : 3,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-03-01",
      "latestCommitDate" : "2020-03-02",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-03-02", "2020-03-01" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "xma@compusoftdevelopment.com",
      "userName" : "Xiujun Ma",
      "commitsCount" : 2,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-10-26",
      "latestCommitDate" : "2020-10-27",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-10-27", "2020-10-26" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "jean-michel.fayard@akelius.de",
      "userName" : "Jean-Michel Fayard",
      "commitsCount" : 2,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2019-10-17",
      "latestCommitDate" : "2019-10-17",
      "activeYears" : [ "2019" ],
      "commitDates" : [ "2019-10-17" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "yaroslav.russkih@jetbrains.com",
      "userName" : "yrusskih",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-12-15",
      "latestCommitDate" : "2021-12-15",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-12-15" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "take7010@gmail.com",
      "userName" : "竹端尚人",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-12-14",
      "latestCommitDate" : "2021-12-14",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-12-14" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "marton.toth@supercharge.io",
      "userName" : "Marton Toth",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-02-07",
      "latestCommitDate" : "2021-02-07",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-02-07" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "michael.kuzmin@jetbrains.com",
      "userName" : "Michael Kuzmin",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-12-25",
      "latestCommitDate" : "2020-12-25",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-12-25" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "s-leigh@users.noreply.github.com",
      "userName" : "Stephen Leigh",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-12-04",
      "latestCommitDate" : "2020-12-04",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-12-04" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "maido@producement.com",
      "userName" : "Maido Kaara",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-10-15",
      "latestCommitDate" : "2020-10-15",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-10-15" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "yuppie-flu@users.noreply.github.com",
      "userName" : "Kirill Kozlov",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-10-11",
      "latestCommitDate" : "2020-10-11",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-10-11" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "mykyta.sikriier@allegro.pl",
      "userName" : "Mykyta Sikriier",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-08-30",
      "latestCommitDate" : "2020-08-30",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-08-30" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "x3mcoder@gmail.com",
      "userName" : "Artur Sharipov",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-07-24",
      "latestCommitDate" : "2020-07-24",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-07-24" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "igrekde@gmail.com",
      "userName" : "Egor Tolstoy",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-06-01",
      "latestCommitDate" : "2020-06-01",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-06-01" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "131809+fitzoh@users.noreply.github.com",
      "userName" : "Andrew Fitzgerald",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2019-10-14",
      "latestCommitDate" : "2019-10-14",
      "activeYears" : [ "2019" ],
      "commitDates" : [ "2019-10-14" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    } ],
    "contributorsPerYear" : [ {
      "timeSlot" : "2019",
      "contributorsCount" : 4,
      "commitsCount" : 178
    }, {
      "timeSlot" : "2020",
      "contributorsCount" : 14,
      "commitsCount" : 191
    }, {
      "timeSlot" : "2021",
      "contributorsCount" : 6,
      "commitsCount" : 38
    }, {
      "timeSlot" : "2022",
      "contributorsCount" : 1,
      "commitsCount" : 1
    } ],
    "contributorsPerMonth" : [ {
      "timeSlot" : "2019-06",
      "contributorsCount" : 1,
      "commitsCount" : 16
    }, {
      "timeSlot" : "2019-07",
      "contributorsCount" : 1,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2019-09",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-10",
      "contributorsCount" : 3,
      "commitsCount" : 122
    }, {
      "timeSlot" : "2019-11",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2019-12",
      "contributorsCount" : 2,
      "commitsCount" : 18
    }, {
      "timeSlot" : "2020-01",
      "contributorsCount" : 2,
      "commitsCount" : 35
    }, {
      "timeSlot" : "2020-02",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2020-03",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-05",
      "contributorsCount" : 2,
      "commitsCount" : 48
    }, {
      "timeSlot" : "2020-06",
      "contributorsCount" : 3,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-07",
      "contributorsCount" : 3,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2020-08",
      "contributorsCount" : 3,
      "commitsCount" : 43
    }, {
      "timeSlot" : "2020-09",
      "contributorsCount" : 3,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-10",
      "contributorsCount" : 5,
      "commitsCount" : 21
    }, {
      "timeSlot" : "2020-11",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-12",
      "contributorsCount" : 4,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2021-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02",
      "contributorsCount" : 3,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-04",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-05",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2021-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-09",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-10",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2021-12",
      "contributorsCount" : 3,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2022-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    } ],
    "contributorsPerDay" : [ {
      "timeSlot" : "2019-06-18",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2019-06-19",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-06-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-06-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-06-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-07-14",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-07-17",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-07-18",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-07-20",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-07-21",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-09-15",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-10-02",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-10-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-10-04",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-10-05",
      "contributorsCount" : 1,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2019-10-06",
      "contributorsCount" : 1,
      "commitsCount" : 14
    }, {
      "timeSlot" : "2019-10-07",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2019-10-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-10-09",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-10-10",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2019-10-11",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2019-10-12",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-10-13",
      "contributorsCount" : 1,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2019-10-14",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-10-17",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2019-10-19",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-10-21",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-10-22",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2019-10-23",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2019-10-24",
      "contributorsCount" : 1,
      "commitsCount" : 16
    }, {
      "timeSlot" : "2019-10-25",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2019-10-26",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-10-27",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2019-11-01",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-11-02",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2019-11-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-12-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-12-12",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2019-12-18",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-12-30",
      "contributorsCount" : 1,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2020-01-01",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-01-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-01-03",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-01-04",
      "contributorsCount" : 2,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2020-01-05",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-01-06",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-01-07",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2020-01-25",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-02-08",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2020-03-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-03-02",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-03-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-05-22",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2020-05-24",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-05-25",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2020-05-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-05-27",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-05-28",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2020-05-29",
      "contributorsCount" : 1,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2020-05-30",
      "contributorsCount" : 1,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2020-05-31",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2020-06-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-06-02",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-07-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-07-29",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-07-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-07-31",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-08-04",
      "contributorsCount" : 2,
      "commitsCount" : 21
    }, {
      "timeSlot" : "2020-08-06",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2020-08-08",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2020-08-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-08-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-08-25",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-08-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-08-30",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-09-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-09-10",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-09-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-09-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-09-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-08",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-10-09",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-10-11",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-10-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-27",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-11-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-04",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-11",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-12-25",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-01-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-10",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-04-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-23",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-05-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-17",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-20",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-09-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-19",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2021-10-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-10",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-12-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-03-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    } ],
    "contributorsPerWeek" : [ {
      "timeSlot" : "2019-06-17",
      "contributorsCount" : 1,
      "commitsCount" : 15
    }, {
      "timeSlot" : "2019-06-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-07-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-07-15",
      "contributorsCount" : 1,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2019-09-09",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2019-09-30",
      "contributorsCount" : 1,
      "commitsCount" : 27
    }, {
      "timeSlot" : "2019-10-07",
      "contributorsCount" : 1,
      "commitsCount" : 40
    }, {
      "timeSlot" : "2019-10-14",
      "contributorsCount" : 3,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2019-10-21",
      "contributorsCount" : 1,
      "commitsCount" : 45
    }, {
      "timeSlot" : "2019-10-28",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2019-12-09",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2019-12-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2019-12-30",
      "contributorsCount" : 2,
      "commitsCount" : 30
    }, {
      "timeSlot" : "2020-01-06",
      "contributorsCount" : 1,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2020-01-20",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-02-03",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2020-02-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-03-02",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2020-05-18",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2020-05-25",
      "contributorsCount" : 2,
      "commitsCount" : 39
    }, {
      "timeSlot" : "2020-06-01",
      "contributorsCount" : 3,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-07-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-07-27",
      "contributorsCount" : 2,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2020-08-03",
      "contributorsCount" : 2,
      "commitsCount" : 36
    }, {
      "timeSlot" : "2020-08-10",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-08-24",
      "contributorsCount" : 3,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-09-07",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-09-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-09-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-05",
      "contributorsCount" : 2,
      "commitsCount" : 15
    }, {
      "timeSlot" : "2020-10-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-26",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-11-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-07",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2020-12-21",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-01-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-01",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-02-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-05",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-04-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-17",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-05-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-12",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-08-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-20",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-09-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-04",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-18",
      "contributorsCount" : 1,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2021-12-06",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-12-13",
      "contributorsCount" : 3,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-03-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    } ],
    "commitsPerExtensions" : [ {
      "extension" : "kt",
      "commitsCount" : 2392,
      "committers" : [ "vdtankov@gmail.com", "take7010@gmail.com", "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "marton.toth@supercharge.io", "michael.kuzmin@jetbrains.com", "anstkras@gmail.com", "s-leigh@users.noreply.github.com", "xma@compusoftdevelopment.com", "maido@producement.com", "yuppie-flu@users.noreply.github.com", "peter.pribula@hotmail.com", "mykyta.sikriier@allegro.pl", "x3mcoder@gmail.com", "igrekde@gmail.com", "sokatov@gmail.com", "suushiemaniac@gmail.com" ],
      "filesCount" : 618,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "take7010@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "dart.fk712@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 127
      }, {
        "contributor" : "michael.kuzmin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 758
      }, {
        "contributor" : "mykyta.sikriier@allegro.pl",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "maido@producement.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "igrekde@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "x3mcoder@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "peter.pribula@hotmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "sokatov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "s-leigh@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "marton.toth@supercharge.io",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "yuppie-flu@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "suushiemaniac@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      }, {
        "contributor" : "xma@compusoftdevelopment.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1450
      }, {
        "contributor" : "anstkras@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 26
      } ]
    }, {
      "extension" : "kts",
      "commitsCount" : 605,
      "committers" : [ "vdtankov@gmail.com", "yaroslav.russkih@jetbrains.com", "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "anstkras@gmail.com", "peter.pribula@hotmail.com", "suushiemaniac@gmail.com" ],
      "filesCount" : 65,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "dart.fk712@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 28
      }, {
        "contributor" : "suushiemaniac@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 250
      }, {
        "contributor" : "peter.pribula@hotmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 311
      }, {
        "contributor" : "yaroslav.russkih@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "anstkras@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 4
      } ]
    }, {
      "extension" : "tf",
      "commitsCount" : 115,
      "committers" : [ "vdtankov@gmail.com", "dart.fk712@gmail.com", "vladislav.tankov@jetbrains.com", "michael.kuzmin@jetbrains.com", "anstkras@gmail.com", "yuppie-flu@users.noreply.github.com", "peter.pribula@hotmail.com" ],
      "filesCount" : 18,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "dart.fk712@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "michael.kuzmin@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      }, {
        "contributor" : "yuppie-flu@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 57
      }, {
        "contributor" : "peter.pribula@hotmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 29
      }, {
        "contributor" : "anstkras@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 12
      } ]
    }, {
      "extension" : "md",
      "commitsCount" : 125,
      "committers" : [ "vdtankov@gmail.com", "vladislav.tankov@jetbrains.com", "jean-michel.fayard@akelius.de", "131809+fitzoh@users.noreply.github.com" ],
      "filesCount" : 4,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 45
      }, {
        "contributor" : "jean-michel.fayard@akelius.de",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 77
      }, {
        "contributor" : "131809+fitzoh@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "",
      "commitsCount" : 16,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 13,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      } ]
    }, {
      "extension" : "css",
      "commitsCount" : 25,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 24,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 15
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      } ]
    }, {
      "extension" : "apng",
      "commitsCount" : 16,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 16,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      } ]
    }, {
      "extension" : "js",
      "commitsCount" : 17,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 16,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 10
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 7
      } ]
    }, {
      "extension" : "bat",
      "commitsCount" : 15,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 13,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 9
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      } ]
    }, {
      "extension" : "xml",
      "commitsCount" : 8,
      "committers" : [ "vdtankov@gmail.com", "vladislav.tankov@jetbrains.com" ],
      "filesCount" : 4,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "editorconfig",
      "commitsCount" : 3,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "jar",
      "commitsCount" : 15,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 13,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 9
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      } ]
    }, {
      "extension" : "properties",
      "commitsCount" : 29,
      "committers" : [ "vdtankov@gmail.com", "vladislav.tankov@jetbrains.com" ],
      "filesCount" : 21,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 14
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 15
      } ]
    }, {
      "extension" : "yaml",
      "commitsCount" : 33,
      "committers" : [ "vladislav.tankov@jetbrains.com", "vdtankov@gmail.com" ],
      "filesCount" : 6,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 25
      }, {
        "contributor" : "vdtankov@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 8
      } ]
    }, {
      "extension" : "gitignore",
      "commitsCount" : 2,
      "committers" : [ "vladislav.tankov@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "hcl",
      "commitsCount" : 1,
      "committers" : [ "vladislav.tankov@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "vladislav.tankov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    } ]
  },
  "numberOfExcludedFiles" : 20,
  "excludedExtensions" : {
    "" : 2,
    "txt" : 1,
    "apng" : 6,
    "gitignore" : 1,
    "editorconfig" : 1,
    "js" : 3,
    "jar" : 2,
    "kts" : 1,
    "properties" : 2,
    "yaml" : 1
  },
  "analysisStartTimeMs" : 1768755993259,
  "maxLinesOfCode" : 7186,
  "maxFileCount" : 213
}