docs: def cleanup_email_addresses(request, addresses):
      """
      Takes a list of EmailAddress instances and cleans it up, making
      sure only valid ones remain, without multiple primaries etc.
  
      Order is important: e.g. if multiple primary e-mail addresses
      exist, the first one encountered will be kept as primary.
      """
      from .models import EmailAddress
      adapter = get_adapter(request)
      # Let's group by `email`
      e2a = OrderedDict()  # maps email to EmailAddress
      primary_addresses = []
      verified_addresses = []
      primary_verified_addresses = []
      for address in addresses:
          # Pick up only valid ones...
          email = valid_email_or_none(address.email)
          if not email:
              continue
          # ... and non-conflicting ones...
          if (app_settings.UNIQUE_EMAIL and
                  EmailAddress.objects.filter(email__iexact=email).exists()):
              continue
          a = e2a.get(email.lower())
          if a:
              a.primary = a.primary or address.primary
              a.verified = a.verified or address.verified
          else:
              a = address
              a.verified = a.verified or adapter.is_email_verified(request,
                                                                   a.email)
              e2a[email.lower()] = a
          if a.primary:
              primary_addresses.append(a)
              if a.verified:
                  primary_verified_addresses.append(a)
          if a.verified:
              verified_addresses.append(a)
      # Now that we got things sorted out, let's assign a primary
      if primary_verified_addresses:
          primary_address = primary_verified_addresses[0]
      elif verified_addresses:
          # Pick any verified as primary
          primary_address = verified_addresses[0]
      elif primary_addresses:
          # Okay, let's pick primary then, even if unverified
          primary_address = primary_addresses[0]
      elif e2a:
          # Pick the first
          primary_address = e2a.keys()[0]
      else:
          # Empty
          primary_address = None
      # There can only be one primary
      for a in e2a.values():
          a.primary = primary_address.email.lower() == a.email.lower()
      return list(e2a.values()), primary_address