<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_root_thrifts(basedirs, sources, log=None):
 """Finds the root thrift files in the graph formed by sources and their recursive includes. :basedirs: A set of thrift source file base directories to look for includes in. :sources: Seed thrift files to examine. :log: An optional logger. """


  root_sources = set(sources)
  for source in sources:
    root_sources.difference_update(find_includes(basedirs, source, log=log))
  return root_sources