{
  "title" : "Duplication",
  "timestamp" : "2025-04-14 12:04:41",
  "duplicates" : [ {
    "blockSize" : 189,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 120,
      "endLine" : 408,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 127,
      "endLine" : 415,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 255
    } ]
  }, {
    "blockSize" : 51,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 419,
      "endLine" : 488,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 351
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 375,
      "endLine" : 444,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 293
    } ]
  }, {
    "blockSize" : 27,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 122,
      "endLine" : 159,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 145,
      "endLine" : 182,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 15,
      "endLine" : 59,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 17,
      "endLine" : 61,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 1,
      "endLine" : 49,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 1,
      "endLine" : 49,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 296,
      "endLine" : 316,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 225
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 182,
      "endLine" : 202,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 85,
      "endLine" : 110,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 88,
      "endLine" : 113,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 319,
      "endLine" : 338,
      "cleanedStartLine" : 228,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 205,
      "endLine" : 224,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 131
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_queen.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 32,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_rook.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 32,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 10,
      "endLine" : 31,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 10,
      "endLine" : 37,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_knight.xml",
        "extension" : "xml",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 35,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_rook.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 31,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/randomization/sim.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 207,
      "endLine" : 223,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 146
    }, {
      "file" : {
        "relativePath" : "robogym/randomization/sim.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 283,
      "endLine" : 299,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 202
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_knight.xml",
        "extension" : "xml",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 35,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_queen.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 31,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 19,
      "endLine" : 39,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 18,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_bishop.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 28,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_king.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 28,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 156,
      "endLine" : 174,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 170,
      "endLine" : 189,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 357,
      "endLine" : 377,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 276
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 193,
      "endLine" : 213,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_king.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_queen.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 29,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_king.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_rook.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 29,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 97,
      "endLine" : 115,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 82,
      "endLine" : 100,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_bishop.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_knight.xml",
        "extension" : "xml",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 33,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 361,
      "endLine" : 377,
      "cleanedStartLine" : 264,
      "cleanedEndLine" : 276
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 298,
      "endLine" : 314,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 206
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_king.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_knight.xml",
        "extension" : "xml",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 33,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part4.xml",
        "extension" : "xml",
        "linesOfCode" : 30,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 13,
      "endLine" : 26,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part5.xml",
        "extension" : "xml",
        "linesOfCode" : 34,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 15,
      "endLine" : 28,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_bishop.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_queen.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 29,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 15,
      "endLine" : 29,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 17,
      "endLine" : 32,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_bishop.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 27,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_rook.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 29,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 298,
      "endLine" : 314,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 206
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 197,
      "endLine" : 213,
      "cleanedStartLine" : 125,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 82,
      "endLine" : 93,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 108,
      "endLine" : 119,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 58,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 71,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 33,
      "endLine" : 44,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 59,
      "endLine" : 70,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 95,
      "endLine" : 106,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 121,
      "endLine" : 132,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 69,
      "endLine" : 80,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 95,
      "endLine" : 106,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_locked.xml",
        "extension" : "xml",
        "linesOfCode" : 19,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 1,
      "endLine" : 20,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_locked_with_obstacles.xml",
        "extension" : "xml",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 56,
      "endLine" : 67,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 108,
      "endLine" : 119,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 56,
      "endLine" : 67,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 82,
      "endLine" : 93,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 110,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 123,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 52,
      "endLine" : 68,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 53,
      "endLine" : 69,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 20,
      "endLine" : 31,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 46,
      "endLine" : 57,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 69,
      "endLine" : 80,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 121,
      "endLine" : 132,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 84,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 97,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 90
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 12,
      "endLine" : 26,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 12,
      "endLine" : 25,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 70,
      "endLine" : 80,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 33,
      "endLine" : 43,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 72,
      "endLine" : 82,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 34,
      "endLine" : 44,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 47,
      "endLine" : 57,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 70,
      "endLine" : 80,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_env.py",
        "extension" : "py",
        "linesOfCode" : 214,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 200,
      "endLine" : 213,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/reach.py",
        "extension" : "py",
        "linesOfCode" : 175,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 118,
      "endLine" : 131,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 122,
      "endLine" : 132,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 135,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 147,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part2.xml",
        "extension" : "xml",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 11,
      "endLine" : 22,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part5.xml",
        "extension" : "xml",
        "linesOfCode" : 34,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 15,
      "endLine" : 26,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 109,
      "endLine" : 119,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 109,
      "endLine" : 119,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 159,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 171,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 109,
      "endLine" : 119,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 59,
      "endLine" : 69,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 72,
      "endLine" : 82,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 83,
      "endLine" : 93,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 21,
      "endLine" : 31,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 60,
      "endLine" : 70,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part2.xml",
        "extension" : "xml",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 11,
      "endLine" : 22,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part4.xml",
        "extension" : "xml",
        "linesOfCode" : 30,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 13,
      "endLine" : 24,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 83,
      "endLine" : 93,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 21,
      "endLine" : 31,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 34,
      "endLine" : 44,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 122,
      "endLine" : 132,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 47,
      "endLine" : 57,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 60,
      "endLine" : 70,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 83,
      "endLine" : 93,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 70,
      "endLine" : 79,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_bishop.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_pawn.xml",
        "extension" : "xml",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 92,
      "endLine" : 105,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 53,
      "endLine" : 66,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/chess/chessboard.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chessboard.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_pawn.xml",
        "extension" : "xml",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_rook.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 26,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part1.xml",
        "extension" : "xml",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 10,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part4.xml",
        "extension" : "xml",
        "linesOfCode" : 30,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 13,
      "endLine" : 23,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_parallelogram.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_small_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part1.xml",
        "extension" : "xml",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 10,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part2.xml",
        "extension" : "xml",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_small_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_square.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 377,
      "endLine" : 387,
      "cleanedStartLine" : 244,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part1.xml",
        "extension" : "xml",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 10,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/rainbow/rainbow_part5.xml",
        "extension" : "xml",
        "linesOfCode" : 34,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 15,
      "endLine" : 25,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 383,
      "endLine" : 397,
      "cleanedStartLine" : 279,
      "cleanedEndLine" : 288
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 338,
      "endLine" : 352,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 230
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 421,
      "endLine" : 431,
      "cleanedStartLine" : 302,
      "cleanedEndLine" : 311
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_parallelogram.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_square.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_king.xml",
        "extension" : "xml",
        "linesOfCode" : 31,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 14,
      "endLine" : 24,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_pawn.xml",
        "extension" : "xml",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/utils/logistic_functions.py",
        "extension" : "py",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 27,
      "endLine" : 41,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "robogym/robot/utils/logistic_functions.py",
        "extension" : "py",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 62,
      "endLine" : 76,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 47,
      "endLine" : 56,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 73,
      "endLine" : 82,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 44,
      "endLine" : 53,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_pawn.xml",
        "extension" : "xml",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_queen.xml",
        "extension" : "xml",
        "linesOfCode" : 35,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 16,
      "endLine" : 26,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_knight.xml",
        "extension" : "xml",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 30,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/chess/chess_pawn.xml",
        "extension" : "xml",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 92,
      "endLine" : 105,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 52,
      "endLine" : 65,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 122,
      "endLine" : 131,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 124
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 21,
      "endLine" : 30,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 73,
      "endLine" : 82,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_utils.py",
        "extension" : "py",
        "linesOfCode" : 102,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 67,
      "endLine" : 84,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_utils.py",
        "extension" : "py",
        "linesOfCode" : 102,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 97,
      "endLine" : 122,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 147,
      "endLine" : 159,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 156,
      "endLine" : 168,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 113,
      "endLine" : 127,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 116,
      "endLine" : 130,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 23,
      "endLine" : 32,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 19,
      "endLine" : 28,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/base.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 744,
      "startLine" : 807,
      "endLine" : 818,
      "cleanedStartLine" : 519,
      "cleanedEndLine" : 527
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_state.py",
        "extension" : "py",
        "linesOfCode" : 406,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 442,
      "endLine" : 453,
      "cleanedStartLine" : 276,
      "cleanedEndLine" : 284
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_manipulator.py",
        "extension" : "py",
        "linesOfCode" : 261,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 256,
      "startLine" : 238,
      "endLine" : 248,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_manipulator.py",
        "extension" : "py",
        "linesOfCode" : 261,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 256,
      "startLine" : 283,
      "endLine" : 293,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 428,
      "endLine" : 436,
      "cleanedStartLine" : 278,
      "cleanedEndLine" : 286
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 268,
      "endLine" : 276,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 472,
      "endLine" : 480,
      "cleanedStartLine" : 336,
      "cleanedEndLine" : 344
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 268,
      "endLine" : 276,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/lego/defaults.xml",
        "extension" : "xml",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/lego/easy_defaults.xml",
        "extension" : "xml",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 402,
      "endLine" : 426,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 276
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 247,
      "endLine" : 266,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 1,
      "endLine" : 28,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 1,
      "endLine" : 27,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 17,
      "endLine" : 26,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 19,
      "endLine" : 28,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 446,
      "endLine" : 470,
      "cleanedStartLine" : 326,
      "cleanedEndLine" : 334
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 247,
      "endLine" : 266,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 181,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 174
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 84,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/utils/rotation.py",
        "extension" : "py",
        "linesOfCode" : 326,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 324,
      "startLine" : 397,
      "endLine" : 405,
      "cleanedStartLine" : 232,
      "cleanedEndLine" : 240
    }, {
      "file" : {
        "relativePath" : "robogym/utils/rotation.py",
        "extension" : "py",
        "linesOfCode" : 326,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 324,
      "startLine" : 414,
      "endLine" : 422,
      "cleanedStartLine" : 247,
      "cleanedEndLine" : 255
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 23,
      "endLine" : 32,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 17,
      "endLine" : 26,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 1,
      "endLine" : 28,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 1,
      "endLine" : 27,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 260,
      "endLine" : 269,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 175
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 4,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_attached.py",
        "extension" : "py",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 6,
      "endLine" : 18,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 41,
      "endLine" : 51,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 40,
      "endLine" : 50,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 103,
      "endLine" : 113,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 349,
      "endLine" : 357,
      "cleanedStartLine" : 256,
      "cleanedEndLine" : 263
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 271,
      "endLine" : 279,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_attached.py",
        "extension" : "py",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 6,
      "endLine" : 18,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_train.py",
        "extension" : "py",
        "linesOfCode" : 49,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 5,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_medium_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_small_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 137,
      "endLine" : 147,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 81,
      "endLine" : 91,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_large_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_parallelogram.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/free_dof_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 155,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 147,
      "startLine" : 119,
      "endLine" : 129,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/joint_controlled_arm.py",
        "extension" : "py",
        "linesOfCode" : 110,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 144,
      "endLine" : 154,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 170,
      "endLine" : 180,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 88,
      "endLine" : 98,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_large_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_medium_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 62,
      "endLine" : 75,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 63,
      "endLine" : 76,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation.xml",
        "extension" : "xml",
        "linesOfCode" : 86,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation_render.xml",
        "extension" : "xml",
        "linesOfCode" : 58,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 836,
      "endLine" : 866,
      "cleanedStartLine" : 460,
      "cleanedEndLine" : 467
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 929,
      "endLine" : 964,
      "cleanedStartLine" : 507,
      "cleanedEndLine" : 514
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 15,
      "endLine" : 23,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 170,
      "endLine" : 180,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 103,
      "endLine" : 113,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 147,
      "endLine" : 157,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 103,
      "endLine" : 113,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_large_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_small_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_medium_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_parallelogram.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 228
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 216,
      "endLine" : 225,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_large_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_square.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_medium_triangle.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/holdouts/tangram/tangram_square.xml",
        "extension" : "xml",
        "linesOfCode" : 17,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/control/tcp/mocap_solver.py",
        "extension" : "py",
        "linesOfCode" : 52,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 21,
      "endLine" : 28,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "robogym/robot/control/tcp/solver.py",
        "extension" : "py",
        "linesOfCode" : 41,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 23,
      "endLine" : 30,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 88,
      "endLine" : 98,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 40,
      "endLine" : 50,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 383,
      "endLine" : 392,
      "cleanedStartLine" : 279,
      "cleanedEndLine" : 286
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 216,
      "endLine" : 225,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 4,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_train.py",
        "extension" : "py",
        "linesOfCode" : 49,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 5,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 156,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/observation/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 20,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 51,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/observation/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 52,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 147,
      "endLine" : 157,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 88,
      "endLine" : 98,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 874,
      "endLine" : 881,
      "cleanedStartLine" : 474,
      "cleanedEndLine" : 481
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 987,
      "endLine" : 994,
      "cleanedStartLine" : 533,
      "cleanedEndLine" : 540
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/main.xml",
        "extension" : "xml",
        "linesOfCode" : 20,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 8,
      "endLine" : 19,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/main_render.xml",
        "extension" : "xml",
        "linesOfCode" : 20,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 7,
      "endLine" : 19,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/table_setting.py",
        "extension" : "py",
        "linesOfCode" : 68,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/wordblocks.py",
        "extension" : "py",
        "linesOfCode" : 73,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_attached.py",
        "extension" : "py",
        "linesOfCode" : 26,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 6,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_stack.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 6,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 11,
      "endLine" : 17,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 14,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 40,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 15,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 11,
      "endLine" : 17,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 14,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/mujoco/simulation_interface.py",
        "extension" : "py",
        "linesOfCode" : 125,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 237,
      "endLine" : 243,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/simulation/base.py",
        "extension" : "py",
        "linesOfCode" : 118,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_stack.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 6,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_train.py",
        "extension" : "py",
        "linesOfCode" : 49,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 5,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 73,
      "endLine" : 79,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 124
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/blocks.py",
        "extension" : "py",
        "linesOfCode" : 24,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 4,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/dominos.py",
        "extension" : "py",
        "linesOfCode" : 34,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 5,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 47,
      "endLine" : 53,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 18,
      "endLine" : 26,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 34,
      "endLine" : 40,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_reach_goal.py",
        "extension" : "py",
        "linesOfCode" : 59,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 28,
      "endLine" : 34,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_state.py",
        "extension" : "py",
        "linesOfCode" : 406,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 449,
      "endLine" : 455,
      "cleanedStartLine" : 280,
      "cleanedEndLine" : 286
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/free_dof_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 155,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 147,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/joint_controlled_arm.py",
        "extension" : "py",
        "linesOfCode" : 110,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 323,
      "endLine" : 329,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 237
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 125,
      "cleanedEndLine" : 131
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_env.py",
        "extension" : "py",
        "linesOfCode" : 214,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 190,
      "endLine" : 197,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "robogym/robot/shadow_hand/mujoco/shadow_hand_simulation.py",
        "extension" : "py",
        "linesOfCode" : 40,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 167,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 161,
      "endLine" : 167,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 66,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 18,
      "endLine" : 25,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/mujoco/mujoco_xml.py",
        "extension" : "py",
        "linesOfCode" : 227,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 222,
      "startLine" : 313,
      "endLine" : 319,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 183
    }, {
      "file" : {
        "relativePath" : "robogym/mujoco/mujoco_xml.py",
        "extension" : "py",
        "linesOfCode" : 227,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 222,
      "startLine" : 329,
      "endLine" : 335,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 193
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 17,
      "endLine" : 23,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/full_unconstrained.py",
        "extension" : "py",
        "linesOfCode" : 71,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/ideal_joint_controlled_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 84,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/joint_controlled_arm.py",
        "extension" : "py",
        "linesOfCode" : 110,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 323,
      "endLine" : 329,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 237
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 332,
      "endLine" : 338,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 332,
      "endLine" : 338,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 209,
      "endLine" : 215,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 60,
      "endLine" : 66,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 209,
      "endLine" : 215,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 125,
      "cleanedEndLine" : 131
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 16,
      "endLine" : 23,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 149,
      "endLine" : 155,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/tangram.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 78,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/chess.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 174,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 173,
      "endLine" : 179,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 4,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/blocks_stack.py",
        "extension" : "py",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 6,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/free_dof_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 155,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 147,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/ideal_joint_controlled_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 84,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_reach_goal.py",
        "extension" : "py",
        "linesOfCode" : 59,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_stack_goal.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 660,
      "endLine" : 688,
      "cleanedStartLine" : 369,
      "cleanedEndLine" : 374
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/utils.py",
        "extension" : "py",
        "linesOfCode" : 631,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 611,
      "startLine" : 725,
      "endLine" : 752,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 405
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 191,
      "endLine" : 196,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 354,
      "endLine" : 361,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 391,
      "endLine" : 399,
      "cleanedStartLine" : 236,
      "cleanedEndLine" : 241
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation.xml",
        "extension" : "xml",
        "linesOfCode" : 86,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation_render.xml",
        "extension" : "xml",
        "linesOfCode" : 58,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 288,
      "endLine" : 295,
      "cleanedStartLine" : 185,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 311,
      "endLine" : 319,
      "cleanedStartLine" : 186,
      "cleanedEndLine" : 191
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/ball_in_mug.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 32,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/dominoes.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 20,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 332,
      "endLine" : 339,
      "cleanedStartLine" : 213,
      "cleanedEndLine" : 218
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 363,
      "endLine" : 371,
      "cleanedStartLine" : 218,
      "cleanedEndLine" : 223
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/base.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 744,
      "startLine" : 885,
      "endLine" : 890,
      "cleanedStartLine" : 575,
      "cleanedEndLine" : 580
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/dominos.py",
        "extension" : "py",
        "linesOfCode" : 99,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 135,
      "endLine" : 140,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/ideal_joint_controlled_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 84,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/joint_controlled_arm.py",
        "extension" : "py",
        "linesOfCode" : 110,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 171,
      "endLine" : 178,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 168,
      "endLine" : 176,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 438,
      "endLine" : 444,
      "cleanedStartLine" : 288,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 189
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 266,
      "endLine" : 273,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 282,
      "endLine" : 290,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 266,
      "endLine" : 273,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 275,
      "endLine" : 283,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 165
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 343,
      "endLine" : 350,
      "cleanedStartLine" : 220,
      "cleanedEndLine" : 225
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 384,
      "endLine" : 392,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 299,
      "endLine" : 306,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack4.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 23,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 17,
      "endLine" : 23,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 222,
      "endLine" : 229,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 219,
      "endLine" : 227,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 288,
      "endLine" : 295,
      "cleanedStartLine" : 185,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 304,
      "endLine" : 312,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 222,
      "endLine" : 229,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 226,
      "endLine" : 234,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 136
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 305,
      "endLine" : 310,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 220
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 482,
      "endLine" : 488,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 351
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 189
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 161,
      "endLine" : 169,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 310,
      "endLine" : 317,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 334,
      "endLine" : 342,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_curriculum.py",
        "extension" : "py",
        "linesOfCode" : 105,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 233,
      "endLine" : 240,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 233,
      "endLine" : 241,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 349,
      "endLine" : 355,
      "cleanedStartLine" : 256,
      "cleanedEndLine" : 261
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 185,
      "endLine" : 191,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/base.py",
        "extension" : "py",
        "linesOfCode" : 666,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 651,
      "startLine" : 537,
      "endLine" : 542,
      "cleanedStartLine" : 305,
      "cleanedEndLine" : 310
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/base.py",
        "extension" : "py",
        "linesOfCode" : 666,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 651,
      "startLine" : 764,
      "endLine" : 769,
      "cleanedStartLine" : 456,
      "cleanedEndLine" : 461
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/composer.py",
        "extension" : "py",
        "linesOfCode" : 132,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 14,
      "endLine" : 20,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/simulation/mesh.py",
        "extension" : "py",
        "linesOfCode" : 42,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 8,
      "endLine" : 14,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 200,
      "endLine" : 207,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 134
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 191,
      "endLine" : 199,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/ball_capture.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 23,
      "endLine" : 28,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/ball_capture.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 43,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 244,
      "endLine" : 251,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 247,
      "endLine" : 255,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 147
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 244,
      "endLine" : 251,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 254,
      "endLine" : 262,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/base.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 744,
      "startLine" : 253,
      "endLine" : 258,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 131
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/common/base.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 744,
      "startLine" : 277,
      "endLine" : 282,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_manipulator.py",
        "extension" : "py",
        "linesOfCode" : 261,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 256,
      "startLine" : 221,
      "endLine" : 231,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/common/cube_manipulator.py",
        "extension" : "py",
        "linesOfCode" : 261,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 256,
      "startLine" : 262,
      "endLine" : 268,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 321,
      "endLine" : 328,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 211
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 356,
      "endLine" : 364,
      "cleanedStartLine" : 216,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 139,
      "endLine" : 147,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 19,
      "endLine" : 26,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 163,
      "endLine" : 171,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/unconstrained_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 103,
      "endLine" : 111,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 132,
      "endLine" : 140,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation.xml",
        "extension" : "xml",
        "linesOfCode" : 86,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation_render.xml",
        "extension" : "xml",
        "linesOfCode" : 58,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 21,
      "endLine" : 27,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_reach_goal.py",
        "extension" : "py",
        "linesOfCode" : 59,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_reach_goal.py",
        "extension" : "py",
        "linesOfCode" : 59,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 167,
      "endLine" : 174,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 146,
      "endLine" : 154,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 81
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 189,
      "endLine" : 196,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 183,
      "endLine" : 191,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 108
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/ideal_joint_controlled_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 84,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/mujoco/joint_controlled_tcp_arm.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 389,
      "endLine" : 394,
      "cleanedStartLine" : 255,
      "cleanedEndLine" : 260
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 238,
      "endLine" : 243,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation.xml",
        "extension" : "xml",
        "linesOfCode" : 86,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 19,
      "endLine" : 25,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/robot/shadowhand/joint_position_actuation_render.xml",
        "extension" : "xml",
        "linesOfCode" : 58,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 12,
      "endLine" : 18,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 321,
      "endLine" : 328,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 211
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 349,
      "endLine" : 357,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 200,
      "endLine" : 207,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 134
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 198,
      "endLine" : 206,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack_inv6.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 25,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 19,
      "endLine" : 25,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_balance.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 27,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 21,
      "endLine" : 27,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/holdouts/configs/rainbow_build/rainbow_stack2.jsonnet",
        "extension" : "jsonnet",
        "linesOfCode" : 21,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 15,
      "endLine" : 21,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 233,
      "endLine" : 240,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 240,
      "endLine" : 248,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 299,
      "endLine" : 306,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 319,
      "endLine" : 327,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 289,
      "endLine" : 297,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 211,
      "endLine" : 218,
      "cleanedStartLine" : 136,
      "cleanedEndLine" : 141
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 212,
      "endLine" : 220,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 127
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 211,
      "endLine" : 218,
      "cleanedStartLine" : 136,
      "cleanedEndLine" : 141
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/face_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 370,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 353,
      "startLine" : 433,
      "endLine" : 438,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 318
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 238,
      "endLine" : 243,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 354,
      "endLine" : 361,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 398,
      "endLine" : 406,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/chessboard.py",
        "extension" : "py",
        "linesOfCode" : 74,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 8,
      "endLine" : 19,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/table_setting.py",
        "extension" : "py",
        "linesOfCode" : 68,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 8,
      "endLine" : 20,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 332,
      "endLine" : 339,
      "cleanedStartLine" : 213,
      "cleanedEndLine" : 218
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 370,
      "endLine" : 378,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 230
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 343,
      "endLine" : 350,
      "cleanedStartLine" : 220,
      "cleanedEndLine" : 225
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 377,
      "endLine" : 385,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_stack_goal.py",
        "extension" : "py",
        "linesOfCode" : 76,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "robogym/envs/rearrange/goals/object_state.py",
        "extension" : "py",
        "linesOfCode" : 406,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 396,
      "startLine" : 450,
      "endLine" : 455,
      "cleanedStartLine" : 281,
      "cleanedEndLine" : 286
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_cube_solver.py",
        "extension" : "py",
        "linesOfCode" : 124,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 117,
      "endLine" : 122,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/goals/face_free.py",
        "extension" : "py",
        "linesOfCode" : 116,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/full_perpendicular.py",
        "extension" : "py",
        "linesOfCode" : 318,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 295,
      "startLine" : 271,
      "endLine" : 277,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "robogym/envs/dactyl/locked.py",
        "extension" : "py",
        "linesOfCode" : 215,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 185,
      "endLine" : 191,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 167,
      "endLine" : 174,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 189,
      "endLine" : 196,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision.xml",
        "extension" : "xml",
        "linesOfCode" : 310,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 248,
      "startLine" : 176,
      "endLine" : 184,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 101
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/robot/shadow_hand/hand_interface.py",
        "extension" : "py",
        "linesOfCode" : 249,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 244,
      "startLine" : 179,
      "endLine" : 188,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "robogym/robot/ur16e/arm_interface.py",
        "extension" : "py",
        "linesOfCode" : 48,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 29,
      "endLine" : 38,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 296,
      "endLine" : 304,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 268,
      "endLine" : 276,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular.xml",
        "extension" : "xml",
        "linesOfCode" : 297,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 237,
      "startLine" : 310,
      "endLine" : 317,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "robogym/assets/xmls/rubik/rubik_perpendicular_vision_corner_cutoff.xml",
        "extension" : "xml",
        "linesOfCode" : 317,
        "components" : [ "primary::robogym" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 341,
      "endLine" : 349,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 211
    } ]
  } ],
  "overallDuplication" : null
}