{
  "title" : "Duplication",
  "timestamp" : "2024-04-03 14:39:44",
  "duplicates" : [ {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/bindings/neuropod_native.cc",
        "extension" : "cc",
        "linesOfCode" : 136,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 35,
      "endLine" : 49,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "source/neuropod/internal/config_utils.cc",
        "extension" : "cc",
        "linesOfCode" : 196,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 41,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/bazel/tensorflow.bzl",
        "extension" : "bzl",
        "linesOfCode" : 134,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 3,
      "endLine" : 13,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "source/bazel/tensorflow_hdrs.bzl",
        "extension" : "bzl",
        "linesOfCode" : 119,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/bindings/c/np_tensor.h",
        "extension" : "h",
        "linesOfCode" : 35,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 39,
      "endLine" : 50,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "source/neuropod/internal/tensor_types.hh",
        "extension" : "hh",
        "linesOfCode" : 20,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 27,
      "endLine" : 38,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/bazel/tensorflow.bzl",
        "extension" : "bzl",
        "linesOfCode" : 134,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 109,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "source/bazel/tensorflow_hdrs.bzl",
        "extension" : "bzl",
        "linesOfCode" : 119,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 98,
      "endLine" : 108,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/backends/python_bridge/_neuropod_native_bootstrap/hash_utils.py",
        "extension" : "py",
        "linesOfCode" : 9,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "source/python/neuropod/utils/hash_utils.py",
        "extension" : "py",
        "linesOfCode" : 9,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/python/neuropod/loader.py",
        "extension" : "py",
        "linesOfCode" : 106,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "source/python/neuropod/loader.py",
        "extension" : "py",
        "linesOfCode" : 106,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 104,
      "endLine" : 112,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/backends/python_bridge/_neuropod_native_bootstrap/filelock.py",
        "extension" : "py",
        "linesOfCode" : 206,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 370,
      "endLine" : 378,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "source/neuropod/backends/python_bridge/_neuropod_native_bootstrap/filelock.py",
        "extension" : "py",
        "linesOfCode" : 206,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 406,
      "endLine" : 418,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/internal/tensor_accessor.hh",
        "extension" : "hh",
        "linesOfCode" : 92,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 79,
      "endLine" : 95,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "source/neuropod/internal/tensor_accessor.hh",
        "extension" : "hh",
        "linesOfCode" : 92,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 151,
      "endLine" : 159,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/conversions/eigen.hh",
        "extension" : "hh",
        "linesOfCode" : 51,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 33,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "source/neuropod/conversions/eigen.hh",
        "extension" : "hh",
        "linesOfCode" : 51,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/multiprocess/mq/ipc_message_queue_impl.hh",
        "extension" : "hh",
        "linesOfCode" : 218,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "source/neuropod/multiprocess/mq/ipc_message_queue_impl.hh",
        "extension" : "hh",
        "linesOfCode" : 218,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 145,
      "startLine" : 256,
      "endLine" : 263,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/bazel/libtorch.bzl",
        "extension" : "bzl",
        "linesOfCode" : 183,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 174,
      "endLine" : 180,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 167
    }, {
      "file" : {
        "relativePath" : "source/bazel/python.bzl",
        "extension" : "bzl",
        "linesOfCode" : 86,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 73,
      "endLine" : 79,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/bazel/libtorch.bzl",
        "extension" : "bzl",
        "linesOfCode" : 183,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    }, {
      "file" : {
        "relativePath" : "source/bazel/tensorflow.bzl",
        "extension" : "bzl",
        "linesOfCode" : 134,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "source/neuropod/backends/tensorflow/tf_tensor.cc",
        "extension" : "cc",
        "linesOfCode" : 104,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "source/neuropod/backends/tensorflow/tf_tensor.hh",
        "extension" : "hh",
        "linesOfCode" : 124,
        "components" : [ "primary::source" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 43,
      "endLine" : 48,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  } ],
  "overallDuplication" : null
}