docs: private int readCorner4(int numRows, int numColumns) {
      int currentByte = 0;
      if (readModule(numRows - 3, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(numRows - 2, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(numRows - 1, 0, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 2, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(0, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(1, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(2, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      currentByte <<= 1;
      if (readModule(3, numColumns - 1, numRows, numColumns)) {
        currentByte |= 1;
      }
      return currentByte;
    }