code: def _ExtractContentSettingsExceptions(self, exceptions_dict, parser_mediator):
      
      for permission in exceptions_dict:
        if permission not in self._EXCEPTIONS_KEYS:
          continue
  
        exception_dict = exceptions_dict.get(permission, {})
        for urls, url_dict in exception_dict.items():
          last_used = url_dict.get('last_used', None)
          if not last_used:
            continue
  
          # If secondary_url is '*', the permission applies to primary_url.
          # If secondary_url is a valid URL, the permission applies to
          # elements loaded from secondary_url being embedded in primary_url.
          primary_url, secondary_url = urls.split(',')
  
          event_data = ChromeContentSettingsExceptionsEventData()
          event_data.permission = permission
          event_data.primary_url = primary_url
          event_data.secondary_url = secondary_url
  
          timestamp = int(last_used * 1000000)
          date_time = dfdatetime_posix_time.PosixTimeInMicroseconds(
              timestamp=timestamp)
          event = time_events.DateTimeValuesEvent(
              date_time, definitions.TIME_DESCRIPTION_LAST_VISITED)
          parser_mediator.ProduceEventWithEventData(event, event_data)
docs: Extracts site specific events.
  
      Args:
        exceptions_dict (dict): Permission exceptions data from Preferences file.
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.