code: def enumerate_version_changelog(self, url, versions_estimated, timeout=15,
              headers={}):
          
          changelogs = self.vf.changelogs_get()
          ch_hash = None
          for ch_url in changelogs:
              try:
                  ch_hash = self.enumerate_file_hash(url, file_url=ch_url,
                          timeout=timeout, headers=headers)
              except RuntimeError:
                  pass
  
          ch_version = self.vf.changelog_identify(ch_hash)
          if ch_version in versions_estimated:
              return [ch_version]
          else:
              return versions_estimated
docs: If we have a changelog in store for this CMS, this function will be
          called, and a changelog will be used for narrowing down which version is
          installed. If the changelog's version is outside our estimated range,
          it is discarded.
          @param url: the url to check against.
          @param versions_estimated: the version other checks estimate the
              installation is.
          @param timeout: the number of seconds to wait before expiring a request.
          @param headers: headers to pass to requests.get()