code: def sync(self, since=None, timeout_ms=30000, filter=None,
               full_state=None, set_presence=None):
          
  
          request = {
              # non-integer timeouts appear to cause issues
              "timeout": int(timeout_ms)
          }
  
          if since:
              request["since"] = since
  
          if filter:
              request["filter"] = filter
  
          if full_state:
              request["full_state"] = json.dumps(full_state)
  
          if set_presence:
              request["set_presence"] = set_presence
  
          return self._send("GET", "/sync", query_params=request,
                            api_path=MATRIX_V2_API_PATH)
docs: Perform a sync request.
  
          Args:
              since (str): Optional. A token which specifies where to continue a sync from.
              timeout_ms (int): Optional. The time in milliseconds to wait.
              filter (int|str): Either a Filter ID or a JSON string.
              full_state (bool): Return the full state for every room the user has joined
                  Defaults to false.
              set_presence (str): Should the client be marked as "online" or" offline"