<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def disable_avatar(self):
 """ Temporarily disable the avatar. If :attr:`synchronize_vcard` is true, the vCard avatar is disabled (even if disabling the PEP avatar fails). This is done by setting the avatar metadata node empty and if :attr:`synchronize_vcard` is true, downloading the vCard, removing the avatar data and re-uploading the vCard. This method does not error if neither protocol is active. :raises aioxmpp.errors.GatherError: if an exception is raised by the spawned tasks. """


        with (yield from self._publish_lock):
            todo = []
            if self._synchronize_vcard:
                todo.append(self._disable_vcard_avatar())

            if (yield from self._pep.available()):
                todo.append(self._pep.publish(
                    namespaces.xep0084_metadata,
                    avatar_xso.Metadata()
                ))

            yield from gather_reraise_multi(*todo, message="disable_avatar")