docs: def _dns_info_mapper(self, raw_dns):
          """The method maps the specific fields/flags in a DNS record to human readable form"""
          output = {}
  
          # Indentification
          output['identification'] = raw_dns['id']
  
          # Pull out all the flags
          flags = {}
          flags['type'] = 'query' if raw_dns['qr'] == 0 else 'response'
          flags['opcode'] = self.opcodes.get(raw_dns['opcode'], 'UNKNOWN')
          flags['authoritative'] = True if raw_dns['aa'] else False
          flags['truncated'] = True if raw_dns['tc'] else False
          flags['recursion_desired'] = True if raw_dns['rd'] else False
          flags['recursion_available'] = True if raw_dns['ra'] else False
          flags['zero'] = raw_dns['zero']
          flags['return_code'] = self.rcodes.get(raw_dns['rcode'], 'UNKNOWN')
          output['flags'] = flags
  
          # Question/Answer Counts
          counts = {}
          counts['questions'] = len(raw_dns['qd'])
          counts['answers'] = len(raw_dns['an'])
          counts['auth_answers'] = len(raw_dns['ns'])
          counts['add_answers'] = len(raw_dns['ar'])
          output['counts'] = counts
  
          # Queries/Questions
          queries = []
          for query in raw_dns['qd']:
              q = {'class': self.query_classes.get(query['cls'], 'UNKNOWN'),
                   'type': self.query_types.get(query['type'], 'UNKNOWN'),
                   'name': query['name'],
                   'data': query['data']}
              queries.append(q)
          output['queries'] = queries
  
  
          # Responses/Answers (Resource Record)
          output['answers'] = {}
          for section_name, section in zip(['answers', 'name_servers', 'additional'], ['an', 'ns', 'ar']):
              answers = []
              for answer in raw_dns[section]:
                  ans_output = {}
                  ans_output['name'] = answer['name']
                  ans_output['type'] = self.query_types.get(answer['type'], 'UNKNOWN')
                  ans_output['class'] = self.query_classes.get(answer['cls'], 'UNKNOWN')
                  ans_output['ttl'] = answer['ttl']
  
                  # Get the return data for this answer type
                  rdata_field = self._get_rdata_field(answer)
                  if rdata_field != 'unknown':
                      ans_output['rdata'] = answer[rdata_field]
                  answers.append(ans_output)
  
              # Add data to this answer section
              output['answers'][section_name] = answers
  
          # Add any weird stuff
          weird = self._dns_weird(output)
          if weird:
              output['weird'] = weird
  
          return output