code: def GetFrequencyStopTimes(self, problems=None):
      
      stoptimes_list = [] # list of stoptime lists to be returned
      stoptime_pattern = self.GetStopTimes()
      first_secs = stoptime_pattern[0].arrival_secs # first time of the trip
      stoptime_class = self.GetGtfsFactory().StopTime
      # for each start time of a headway run
      for run_secs in self.GetFrequencyStartTimes():
        # stop time list for a headway run
        stoptimes = []
        # go through the pattern and generate stoptimes
        for st in stoptime_pattern:
          arrival_secs, departure_secs = None, None # default value if the stoptime is not timepoint
          if st.arrival_secs != None:
            arrival_secs = st.arrival_secs - first_secs + run_secs
          if st.departure_secs != None:
            departure_secs = st.departure_secs - first_secs + run_secs
          # append stoptime
          stoptimes.append(stoptime_class(problems=problems, stop=st.stop,
                                          arrival_secs=arrival_secs,
                                          departure_secs=departure_secs,
                                          stop_headsign=st.stop_headsign,
                                          pickup_type=st.pickup_type,
                                          drop_off_type=st.drop_off_type,
                                          shape_dist_traveled= \
                                              st.shape_dist_traveled,
                                          stop_sequence=st.stop_sequence,
                                          timepoint=st.timepoint))
        # add stoptimes to the stoptimes_list
        stoptimes_list.append ( stoptimes )
      return stoptimes_list
docs: Return a list of StopTime objects for each headway-based run.
  
      Returns:
        a list of list of StopTime objects. Each list of StopTime objects
        represents one run. If this trip doesn't have headways returns an empty
        list.