code: def is_pre_prepare_time_correct(self, pp: PrePrepare, sender: str) -> bool:
          
          tpcKey = (pp.viewNo, pp.ppSeqNo)
  
          if (self.last_accepted_pre_prepare_time and
                  pp.ppTime < self.last_accepted_pre_prepare_time):
              return False
          elif ((tpcKey not in self.pre_prepare_tss) or
                  ((pp, sender) not in self.pre_prepare_tss[tpcKey])):
              return False
          else:
              return (
                  abs(pp.ppTime - self.pre_prepare_tss[tpcKey][pp, sender]) <=
                  self.config.ACCEPTABLE_DEVIATION_PREPREPARE_SECS
              )
docs: Check if this PRE-PREPARE is not older than (not checking for greater
          than since batches maybe sent in less than 1 second) last PRE-PREPARE
          and in a sufficient range of local clock's UTC time.
          :param pp:
          :return: