{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:47:26",
  "duplicates" : [ {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3CommonSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 51,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 6,
      "endLine" : 29,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 25,
      "endLine" : 48,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/S3PresignedUrlProviderImpl.java",
        "extension" : "java",
        "linesOfCode" : 224,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 218,
      "endLine" : 240,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/cloudfront/CloudFrontSettingsImpl.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 84,
      "endLine" : 106,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/InplaceParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 56,
      "endLine" : 72,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/SeparatePartFilesParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 55,
      "endLine" : 71,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/App/S3/TransferSpeedUp/contexts/CloudFrontDistributionsContext.tsx",
        "extension" : "tsx",
        "linesOfCode" : 276,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 261,
      "startLine" : 134,
      "endLine" : 146,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/contexts/BucketsContext.tsx",
        "extension" : "tsx",
        "linesOfCode" : 179,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 95,
      "endLine" : 107,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3CommonSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 51,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 37,
      "endLine" : 47,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3CompatibleStorageType.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 70,
      "endLine" : 82,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3StorageType.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 78,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3CompatibleStorageType.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 31,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3StorageType.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 27,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/hooks/useBucketLocation.tsx",
        "extension" : "tsx",
        "linesOfCode" : 56,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 18,
      "endLine" : 25,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/hooks/useTransferAccelerationAvailable.tsx",
        "extension" : "tsx",
        "linesOfCode" : 60,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 14,
      "endLine" : 21,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/InplaceParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 77,
      "endLine" : 84,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/SeparatePartFilesParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/util/S3ErrorDto.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 36,
      "endLine" : 49,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/AmazonServiceErrorDto.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 46,
      "endLine" : 59,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/BucketLocationFetcher.java",
        "extension" : "java",
        "linesOfCode" : 65,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/CheckS3TransferAccelerationAvailability.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/MultipartUploadAbortRequestDto.java",
        "extension" : "java",
        "linesOfCode" : 36,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 30,
      "endLine" : 43,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/MultipartUploadCompleteRequestDto.java",
        "extension" : "java",
        "linesOfCode" : 41,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 28,
      "endLine" : 41,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/util/RepeatableFilePartRequestEntityApache43.java",
        "extension" : "java",
        "linesOfCode" : 35,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 19,
      "endLine" : 29,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/util/RepeatableFilePartRequestEntityApacheLegacy.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 34,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/App/S3/TransferSpeedUp/TransferSpeedUp.tsx",
        "extension" : "tsx",
        "linesOfCode" : 119,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/App/S3/TransferSpeedUp/TransferSpeedUp.tsx",
        "extension" : "tsx",
        "linesOfCode" : 119,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/parametersUtils.ts",
        "extension" : "ts",
        "linesOfCode" : 137,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 107,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/parametersUtils.ts",
        "extension" : "ts",
        "linesOfCode" : 137,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 107,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 107,
      "endLine" : 115,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3CompatibleStorageType.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3StorageType.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/orphans/BuildTypeEntry.java",
        "extension" : "java",
        "linesOfCode" : 45,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 39,
      "endLine" : 48,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/orphans/ProjectEntry.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 46,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/orphans/BuildTypeEntry.java",
        "extension" : "java",
        "linesOfCode" : 45,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/orphans/ProjectEntry.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/util/S3ErrorDto.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/transport/AmazonServiceErrorDto.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchBucketLocation.ts",
        "extension" : "ts",
        "linesOfCode" : 35,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 25,
      "endLine" : 31,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchDistributions.ts",
        "extension" : "ts",
        "linesOfCode" : 57,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchBucketLocation.ts",
        "extension" : "ts",
        "linesOfCode" : 35,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 25,
      "endLine" : 31,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchBucketNames.ts",
        "extension" : "ts",
        "linesOfCode" : 35,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 26,
      "endLine" : 32,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchBucketNames.ts",
        "extension" : "ts",
        "linesOfCode" : 35,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 26,
      "endLine" : 32,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-ui/src/Utilities/fetchDistributions.ts",
        "extension" : "ts",
        "linesOfCode" : 57,
        "components" : [ "primary::s3-artifact-storage-ui" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 155,
      "endLine" : 160,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml",
        "extension" : "xml",
        "linesOfCode" : 192,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 121
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/S3PresignedUrlProviderImpl.java",
        "extension" : "java",
        "linesOfCode" : 224,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/cloudfront/CloudFrontPresignedUrlProviderImpl.java",
        "extension" : "java",
        "linesOfCode" : 152,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/S3ArtifactContentProvider.java",
        "extension" : "java",
        "linesOfCode" : 68,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-server/src/main/java/jetbrains/buildServer/artifacts/s3/settings/S3StorageType.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::s3-artifact-storage-server" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "lens-integration/src/main/java/jetbrains/buildServer/artifacts/s3/lens/integration/LensResponseErrorHandler.java",
        "extension" : "java",
        "linesOfCode" : 16,
        "components" : [ "primary::lens-integration" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 9,
      "endLine" : 17,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/errors/CompositeHttpRequestErrorHandler.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 21,
      "endLine" : 28,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/upload/S3SignedUrlFileUploader.java",
        "extension" : "java",
        "linesOfCode" : 284,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 204,
      "startLine" : 148,
      "endLine" : 153,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/publish/presigned/upload/S3SignedUrlFileUploader.java",
        "extension" : "java",
        "linesOfCode" : 284,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 204,
      "startLine" : 156,
      "endLine" : 161,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/S3Util.java",
        "extension" : "java",
        "linesOfCode" : 462,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 333,
      "startLine" : 327,
      "endLine" : 332,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 194
    }, {
      "file" : {
        "relativePath" : "teamcity-s3-sdk/src/main/java/jetbrains/buildServer/artifacts/s3/S3Util.java",
        "extension" : "java",
        "linesOfCode" : 462,
        "components" : [ "primary::teamcity-s3-sdk" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 333,
      "startLine" : 347,
      "endLine" : 352,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/InplaceParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/SeparatePartFilesParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 39,
      "endLine" : 44,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/InplaceParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "s3-artifact-storage-agent/src/main/java/jetbrains/buildServer/artifacts/s3/download/parallel/strategy/impl/SeparatePartFilesParallelDownloadStrategy.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::s3-artifact-storage-agent" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  } ],
  "overallDuplication" : null
}