docs: def execute(self, input_data):
          ''' yara worker execute method '''
          raw_bytes = input_data['sample']['raw_bytes']
          matches = self.rules.match_data(raw_bytes)
  
          # The matches data is organized in the following way
          # {'filename1': [match_list], 'filename2': [match_list]}
          # match_list = list of match
          # match = {'meta':{'description':'blah}, tags=[], matches:True,
          #           strings:[string_list]}
          # string = {'flags':blah, 'identifier':'$', 'data': FindWindow, 'offset'}
          # 
          # So we're going to flatten a bit (shrug)
          # {filename_match_meta_description: string_list}
          flat_data = collections.defaultdict(list)
          for filename, match_list in matches.iteritems():
              for match in match_list:
                  if 'description' in match['meta']:
                      new_tag = filename+'_'+match['meta']['description']
                  else:
                      new_tag = filename+'_'+match['rule']
                  for match in match['strings']:
                      flat_data[new_tag].append(match['data'])
                  # Remove duplicates
                  flat_data[new_tag] = list(set(flat_data[new_tag]))
  
          return {'matches': flat_data}