<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def readGetNext(self, varBind, **context):
 """Read the next Managed Object Instance. Implements the second of the two phases of the SNMP GETNEXT command processing (:RFC:`1905#section-4.2.2`). The goal of the second phase is to actually read the Managed Object Instance which is next in the MIB tree to the one being requested. When multiple Managed Objects Instances are read at once (likely coming all in one SNMP PDU), each of them has to run through the first (*testnext*) and second (*getnext*) phases successfully for the whole read operation to succeed. The role of this object in the MIB tree is non-terminal. It does not access the actual Managed Object Instance, but just traverses one level down the MIB tree and hands off the query to the underlying objects. Beyond that, this object imposes access control logic towards the underlying :class:`MibScalarInstance` objects by invoking the `acFun` callable. Parameters varBind: :py:class:`~pysnmp.smi.rfc1902.ObjectType` object representing Managed Object Instance to read Other Parameters \*\*context: Query parameters: * `cbFun` (callable) - user-supplied callable that is invoked to pass read Managed Object Instance (the *next* one in the MIB tree relative to the one being requested) or an error. * `acFun` (callable) - user-supplied callable that is invoked to authorize access to the Managed Object Instance which is *next* to the one being requested. If not supplied, no access control will be performed. Notes ----- The callback functions (e.g. `cbFun`, `acFun`) have the same signature as this method where `varBind` contains read Managed Object Instance value. In case of an error, the `error` key in the `context` dict will contain an exception object. """

        name, val = varBind

        (debug.logger & debug.FLAG_INS and
         debug.logger('%s: readGetNext(%s, %r)' % (self, name, val)))

        acFun = context.get('acFun')
        if acFun:
            if (self.maxAccess not in ('readonly', 'readwrite', 'readcreate') or
                    acFun('read', (name, self.syntax), **context)):
                nextName = context.get('nextName')
                if nextName:
                    varBind = nextName, exval.noSuchInstance
                else:
                    varBind = name, exval.endOfMibView

                cbFun = context['cbFun']
                cbFun(varBind, **context)
                return

        ManagedMibObject.readGetNext(self, varBind, **context)