function loadAttendeeResponses_(ss, allActivityIds) {
  let sheet = findResponseSheetForForm_(ss);

  if (!sheet || sheet.getLastRow() == 1) {
    return undefined;
  }

  let rows = sheet.getSheetValues(
      sheet.getFrozenRows() + 1, 1,
      sheet.getLastRow() - 1, sheet.getLastRow());
  let attendees = rows.map(function(row) {
    let _ = row.shift(); // Ignore timestamp
    let email = row.shift();
    let autoAssign = row.pop();
    // Find ranked items in the response data.
    let preferences = row.reduce(function(prefs, value, index) {
      let match = value.match(/(\d+).*/);
      if (!match) {
        return prefs;
      }
      let rank = parseInt(match[1]) - 1; // Convert ordinal to array index
      prefs[rank] = index;
      return prefs;
    }, []);
    if (autoAssign == 'Yes') {
      // If auto assigning additional activites, append a randomized list of all the activities.
      // These will then be considered as if the attendee ranked them.
      let additionalChoices = shuffleArray_(allActivityIds);
      preferences = preferences.concat(additionalChoices);
    }
    return {
      email: email,
      preferences: preferences,
      assigned: [],
    };
  });
  return attendees;
}
Loads the attendeee response data.

@param {Spreadsheet} ss - Spreadsheet to load from
@param {number[]} allActivityIds - Full set of available activity IDs
@return {object[]} Array of parsed attendee respones.