code: def prepare(self):
          '''
          Returns a new Prepare message with a proposal id higher than
          that of any observed proposals. A side effect of this method is
          to clear the leader flag if it is currently set.
          '''
  
          self.leader = False
          self.promises_received = set()
          self.nacks_received = set()
          self.proposal_id = ProposalID(self.highest_proposal_id.number + 1, self.network_uid)
          self.highest_proposal_id = self.proposal_id
          self.current_prepare_msg = Prepare(self.network_uid, self.proposal_id)
  
          return self.current_prepare_msf prepare(self):
          '''
          Returns a new Prepare message with a proposal id higher than
          that of any observed proposals. A side effect of this method is
          to clear the leader flag if it is currently set.
          '''
  
          self.leader = False
          self.promises_received = set()
          self.nacks_received = set()
          self.proposal_id = ProposalID(self.highest_proposal_id.number + 1, self.network_uid)
          self.highest_proposal_id = self.proposal_id
          self.current_prepare_msg = Prepare(self.network_uid, self.proposal_id)
  
          return self.current_prepare_msg
docs: Returns a new Prepare message with a proposal id higher than
          that of any observed proposals. A side effect of this method is
          to clear the leader flag if it is currently set.