{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:33:29",
  "duplicates" : [ {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/miner/artifact/DynamicLibraries.kt",
        "extension" : "kt",
        "linesOfCode" : 105,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/miner/artifact/DynamicLibraries.kt",
        "extension" : "kt",
        "linesOfCode" : 105,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/language/psi/impl/HsErrPsiImplUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 112,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 82,
      "startLine" : 38,
      "endLine" : 45,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/language/psi/impl/HsErrPsiImplUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 112,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 82,
      "startLine" : 71,
      "endLine" : 78,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/language/HsErrFoldingBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/com/github/mkartashev/hserr/language/HsErrFoldingBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 46,
      "endLine" : 52,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  } ],
  "overallDuplication" : null
}