<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def iter_admin_log( self, entity, limit=None, *, max_id=0, min_id=0, search=None, admins=None, join=None, leave=None, invite=None, restrict=None, unrestrict=None, ban=None, unban=None, promote=None, demote=None, info=None, settings=None, pinned=None, edit=None, delete=None):
 """ Iterator over the admin log for the specified channel. Note that you must be an administrator of it to use this method. If none of the filters are present (i.e. they all are ``None``), *all* event types will be returned. If at least one of them is ``True``, only those that are true will be returned. Args: entity (`entity`):
 The channel entity from which to get its admin log. limit (`int` | `None`, optional):
 Number of events to be retrieved. The limit may also be ``None``, which would eventually return the whole history. max_id (`int`):
 All the events with a higher (newer) ID or equal to this will be excluded. min_id (`int`):
 All the events with a lower (older) ID or equal to this will be excluded. search (`str`):
 The string to be used as a search query. admins (`entity` | `list`):
 If present, the events will be filtered by these admins (or single admin) and only those caused by them will be returned. join (`bool`):
 If ``True``, events for when a user joined will be returned. leave (`bool`):
 If ``True``, events for when a user leaves will be returned. invite (`bool`):
 If ``True``, events for when a user joins through an invite link will be returned. restrict (`bool`):
 If ``True``, events with partial restrictions will be returned. This is what the API calls "ban". unrestrict (`bool`):
 If ``True``, events removing restrictions will be returned. This is what the API calls "unban". ban (`bool`):
 If ``True``, events applying or removing all restrictions will be returned. This is what the API calls "kick" (restricting all permissions removed is a ban, which kicks the user). unban (`bool`):
 If ``True``, events removing all restrictions will be returned. This is what the API calls "unkick". promote (`bool`):
 If ``True``, events with admin promotions will be returned. demote (`bool`):
 If ``True``, events with admin demotions will be returned. info (`bool`):
 If ``True``, events changing the group info will be returned. settings (`bool`):
 If ``True``, events changing the group settings will be returned. pinned (`bool`):
 If ``True``, events of new pinned messages will be returned. edit (`bool`):
 If ``True``, events of message edits will be returned. delete (`bool`):
 If ``True``, events of message deletions will be returned. Yields: Instances of `telethon.tl.custom.adminlogevent.AdminLogEvent`. """

        return _AdminLogIter(
            self,
            limit,
            entity=entity,
            admins=admins,
            search=search,
            min_id=min_id,
            max_id=max_id,
            join=join,
            leave=leave,
            invite=invite,
            restrict=restrict,
            unrestrict=unrestrict,
            ban=ban,
            unban=unban,
            promote=promote,
            demote=demote,
            info=info,
            settings=settings,
            pinned=pinned,
            edit=edit,
            delete=delete
        )