code: def submit_sample(self, filepath, filename, tags=['TheHive']):
          
          apiurl = '/rest/sample/submit?sample_file'
          params = {'sample_filename_b64enc': base64.b64encode(filename.encode('utf-8')),
                    'reanalyze': self.reanalyze}
          if tags:
              params['tags'] = ','.join(tags)
  
          if os.path.isfile(filepath):
              res = self.session.post(url=self.url + apiurl,
                                      files=[('sample_file', open(filepath, mode='rb'))],
                                      params=params)
              if res.status_code == 200:
                  return json.loads(res.text)
              else:
                  raise BadResponseError('Response from VMRay was not HTTP 200.'
                                         ' Responsecode: {}; Text: {}'.format(res.status_code, res.text))
          else:
              raise SampleFileNotFoundError('Given sample file was not found.')
docs: Uploads a new sample to VMRay api. Filename gets sent base64 encoded.
  
          :param filepath: path to sample
          :type filepath: str
          :param filename: filename of the original file
          :type filename: str
          :param tags: List of tags to apply to the sample
          :type tags: list(str)
          :returns: Dictionary of results
          :rtype: dict