<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_snmp_information(self):
 """ Returns a dict of dicts Example Output: { 'chassis_id': u'Asset Tag 54670', 'community': { u'private': { 'acl': u'12', 'mode': u'rw'}, u'public': { 'acl': u'11', 'mode': u'ro'}, u'public_named_acl': { 'acl': u'ALLOW-SNMP-ACL', 'mode': u'ro'}, u'public_no_acl': { 'acl': u'N/A', 'mode': u'ro'}}, 'contact': u'Joe Smith', 'location': u'123 Anytown USA Rack 404'} """

        # default values
        snmp_dict = {
            "chassis_id": "unknown",
            "community": {},
            "contact": "unknown",
            "location": "unknown",
        }
        command = "show run | include snmp-server"
        output = self._send_command(command)
        for line in output.splitlines():
            fields = line.split()
            if "snmp-server community" in line:
                name = fields[2]
                if "community" not in snmp_dict.keys():
                    snmp_dict.update({"community": {}})
                snmp_dict["community"].update({name: {}})
                try:
                    snmp_dict["community"][name].update({"mode": fields[3].lower()})
                except IndexError:
                    snmp_dict["community"][name].update({"mode": "N/A"})
                try:
                    snmp_dict["community"][name].update({"acl": fields[4]})
                except IndexError:
                    snmp_dict["community"][name].update({"acl": "N/A"})
            elif "snmp-server location" in line:
                snmp_dict["location"] = " ".join(fields[2:])
            elif "snmp-server contact" in line:
                snmp_dict["contact"] = " ".join(fields[2:])
            elif "snmp-server chassis-id" in line:
                snmp_dict["chassis_id"] = " ".join(fields[2:])
        # If SNMP Chassis wasn't found; obtain using direct command
        if snmp_dict["chassis_id"] == "unknown":
            command = "show snmp chassis"
            snmp_chassis = self._send_command(command)
            snmp_dict["chassis_id"] = snmp_chassis
        return snmp_dict