def cli(self, interface='', output=None):
    if (output is None):
        if interface:
            cmd = self.cli_command[1].format(interface=interface)
        else:
            cmd = self.cli_command[0]
        out = self.device.execute(cmd)
    else:
        out = output
    ret_dict = {}
    private_trunk_mappings = None
    private_operational = None
    for line in out.splitlines():
        line = line.strip()
        p1 = re.compile('^Name: +(?P<intf>[\\w\\/\\.\\-]+)$')
        m = p1.match(line)
        if m:
            intf = Common.convert_intf_name(m.groupdict()['intf'])
            if (intf not in ret_dict):
                ret_dict[intf] = {}
            continue
        p2 = re.compile('^Switchport: +(?P<switchport_enable>\\w+)$')
        m = p2.match(line)
        if m:
            if (m.groupdict()['switchport_enable'].lower() == 'enabled'):
                ret_dict[intf]['switchport_enable'] = True
            else:
                ret_dict[intf]['switchport_enable'] = False
            continue
        p3 = re.compile('^Administrative +Mode: +(?P<switchport_mode>[\\w\\s]+)$')
        m = p3.match(line)
        if m:
            ret_dict[intf]['switchport_mode'] = m.groupdict()['switchport_mode']
            continue
        p4 = re.compile('^Operational +Mode: +(?P<operational_mode>[\\w\\s]+)( +\\((?P<dummy>[\\w\\s]+)? *member +of +bundle +(?P<port_channel_int>[\\w\\/\\.\\-]+)\\))?$')
        m = p4.match(line)
        if m:
            ret_dict[intf]['operational_mode'] = m.groupdict()['operational_mode']
            bundle_intf = m.groupdict()['port_channel_int']
            if bundle_intf:
                if ('port_channel' not in ret_dict[intf]):
                    ret_dict[intf]['port_channel'] = {}
                bundle_intf = Common.convert_intf_name(bundle_intf)
                ret_dict[intf]['port_channel']['port_channel_int'] = bundle_intf
                ret_dict[intf]['port_channel']['port_channel_member'] = True
                if (bundle_intf not in ret_dict):
                    ret_dict[bundle_intf] = {}
                if ('port_channel' not in ret_dict[bundle_intf]):
                    ret_dict[bundle_intf]['port_channel'] = {}
                ret_dict[bundle_intf]['port_channel']['port_channel_member'] = True
                if ('port_channel_member_intfs' in ret_dict[bundle_intf]['port_channel']):
                    port_list = ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs']
                    port_list.append(intf)
                    ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs'] = port_list
                else:
                    ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs'] = [intf]
            continue
        p5 = re.compile('^Administrative +Trunking +Encapsulation: +(?P<encapsulation>\\w+)$')
        m = p5.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['administrative_encapsulation'] = m.groupdict()['encapsulation'].lower()
            continue
        p6 = re.compile('^Operational +Trunking +Encapsulation: +(?P<encapsulation>\\w+)$')
        m = p6.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['operational_encapsulation'] = m.groupdict()['encapsulation'].lower()
            continue
        p7 = re.compile('^Negotiation +of +Trunking: +(?P<negotiation_of_trunk>\\w+)$')
        m = p7.match(line)
        if m:
            negotiation_of_trunk = m.groupdict()['negotiation_of_trunk'].lower()
            if ('on' in negotiation_of_trunk):
                ret_dict[intf]['negotiation_of_trunk'] = True
            elif ('off' in negotiation_of_trunk):
                ret_dict[intf]['negotiation_of_trunk'] = False
            continue
        p8 = re.compile('^Access +Mode +VLAN: +(?P<access_vlan>[\\d\\-]+)( *\\((?P<access_vlan_name>.+)\\))?$')
        m = p8.match(line)
        if m:
            ret_dict[intf]['access_vlan'] = m.groupdict()['access_vlan']
            if m.groupdict()['access_vlan_name']:
                ret_dict[intf]['access_vlan_name'] = m.groupdict()['access_vlan_name']
            continue
        p9 = re.compile('^Trunking +Native +Mode +VLAN: +(?P<native_vlan>[\\d\\-]+)( *\\((?P<native_vlan_name>.+)\\))?$')
        m = p9.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['native_vlan'] = m.groupdict()['native_vlan']
            if m.groupdict()['native_vlan_name']:
                ret_dict[intf]['encapsulation']['native_vlan_name'] = m.groupdict()['native_vlan_name']
            continue
        p10 = re.compile('^Administrative +Native +VLAN +tagging: +(?P<tagging>\\w+)$')
        m = p10.match(line)
        if m:
            if ('enable' in m.groupdict()['tagging'].lower()):
                ret_dict[intf]['native_vlan_tagging'] = True
            else:
                ret_dict[intf]['native_vlan_tagging'] = False
            continue
        p11 = re.compile('^Voice +VLAN: +(?P<vlan>[\\d\\-]+)( *\\((?P<voice_vlan_name>.+)\\))?$')
        m = p11.match(line)
        if m:
            ret_dict[intf]['voice_vlan'] = m.groupdict()['vlan']
            if m.groupdict()['voice_vlan_name']:
                ret_dict[intf]['voice_vlan_name'] = m.groupdict()['voice_vlan_name']
            continue
        p12 = re.compile('^Administrative +private-vlan +host-association: +(?P<ret>[\\w\\-]+)$')
        m = p12.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['host_association'] = m.groupdict()['ret']
            continue
        p13 = re.compile('^Administrative +private-vlan +mapping: +(?P<ret>[\\w\\-]+)$')
        m = p13.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['mapping'] = m.groupdict()['ret']
            continue
        p14 = re.compile('^Administrative +private-vlan +trunk +native +VLAN: +(?P<ret>[\\w\\-]+)$')
        m = p14.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['native_vlan'] = m.groupdict()['ret']
            continue
        p15 = re.compile('^Administrative +private-vlan +trunk +Native +VLAN +tagging: +(?P<ret>[\\w\\-]+)$')
        m = p15.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if ('enable' in ret):
                ret_dict[intf]['private_vlan']['native_vlan_tagging'] = True
            else:
                ret_dict[intf]['private_vlan']['native_vlan_tagging'] = False
            continue
        p16 = re.compile('^Administrative +private-vlan +trunk +encapsulation: +(?P<ret>[\\w\\-]+)$')
        m = p16.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['encapsulation'] = m.groupdict()['ret']
            continue
        p17 = re.compile('^Administrative +private-vlan +trunk +normal +VLANs: +(?P<ret>[\\w\\-]+)$')
        m = p17.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['normal_vlans'] = m.groupdict()['ret']
            continue
        p18 = re.compile('^Administrative +private-vlan +trunk +associations: +(?P<ret>[\\w\\-]+)$')
        m = p18.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['associations'] = m.groupdict()['ret']
            continue
        p19 = re.compile('^Administrative +private-vlan +trunk +mappings:( *(?P<ret>[\\w\\-]+))?$')
        m = p19.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            private_trunk_mappings = m.groupdict()['ret']
            if (private_trunk_mappings and (private_trunk_mappings.lower() != 'none')):
                ret_dict[intf]['private_vlan']['trunk_mappings'] = private_trunk_mappings
            private_trunk_mappings = ''
            continue
        if isinstance(private_trunk_mappings, str):
            p19_1 = re.compile('^(?P<mappings>[\\w\\(\\)\\s]+)$')
            m = p19_1.match(line)
            if m:
                ret = m.groupdict()['mappings']
                private_trunk_mappings += ' {}'.format(ret)
                ret_dict[intf]['private_vlan']['trunk_mappings'] = private_trunk_mappings.strip()
            private_trunk_mappings = None
            continue
        p20 = re.compile('^Operational +private-vlan:( *(?P<private_operational>[\\w\\-]+))?$')
        m = p20.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            private_operational = m.groupdict()['private_operational']
            if (private_operational and (private_operational.lower() != 'none')):
                ret_dict[intf]['private_vlan']['operational'] = private_operational
            private_operational = ''
            continue
        p21 = re.compile('^Trunking +VLANs +Enabled: +(?P<trunk_vlans>[\\w\\-\\,\\s]+)$')
        m = p21.match(line)
        if m:
            ret_dict[intf]['trunk_vlans'] = m.groupdict()['trunk_vlans'].lower()
            continue
        if isinstance(private_operational, str):
            p20_1 = re.compile('^(?P<private_operational>[\\w\\(\\)\\s]+)$')
            m = p20_1.match(line)
            if m:
                ret = m.groupdict()['private_operational']
                private_operational += ' {}'.format(ret)
                ret_dict[intf]['private_vlan']['operational'] = private_operational.strip()
            private_operational = None
            continue
        p21_1 = re.compile('^(?P<trunk_vlans>[\\d\\,\\-]+)$')
        m = p21_1.match(line)
        if m:
            ret_dict[intf]['trunk_vlans'] += m.groupdict()['trunk_vlans'].lower()
            continue
        p22 = re.compile('^Pruning +VLANs +Enabled: +(?P<pruning_vlans>[\\w\\-]+)$')
        m = p22.match(line)
        if m:
            ret_dict[intf]['pruning_vlans'] = m.groupdict()['pruning_vlans'].lower()
            continue
        p23 = re.compile('^Capture +Mode +(?P<mode>\\w+)$')
        m = p23.match(line)
        if m:
            mode = m.groupdict()['mode'].lower()
            if ('disabled' in mode):
                ret_dict[intf]['capture_mode'] = False
            else:
                ret_dict[intf]['capture_mode'] = True
            continue
        p24 = re.compile('^Capture +VLANs +Allowed: +(?P<capture_vlans>[\\w\\-]+)$')
        m = p24.match(line)
        if m:
            ret_dict[intf]['capture_vlans'] = m.groupdict()['capture_vlans'].lower()
            continue
        p25 = re.compile('^Protected: +(?P<protected>\\w+)$')
        m = p25.match(line)
        if m:
            if ('false' in m.groupdict()['protected'].lower()):
                ret_dict[intf]['protected'] = False
            else:
                ret_dict[intf]['protected'] = True
            continue
        p26 = re.compile('^Unknown +unicast +blocked: +(?P<block>\\w+)$')
        m = p26.match(line)
        if m:
            if ('disabled' in m.groupdict()['block'].lower()):
                ret_dict[intf]['unknown_unicast_blocked'] = False
            else:
                ret_dict[intf]['unknown_unicast_blocked'] = True
            continue
        p27 = re.compile('^Unknown +multicast +blocked: +(?P<block>\\w+)$')
        m = p27.match(line)
        if m:
            if ('disabled' in m.groupdict()['block'].lower()):
                ret_dict[intf]['unknown_multicast_blocked'] = False
            else:
                ret_dict[intf]['unknown_multicast_blocked'] = True
            continue
        p28 = re.compile('^Appliance +trust: +(?P<trust>[\\w\\-]+)$')
        m = p28.match(line)
        if m:
            if (m.groupdict()['trust'] != 'none'):
                ret_dict[intf]['appliance_trust'] = m.groupdict()['trust']
            continue
    return ret_dict
def cli(self, interface=, output=None):
    if (output is None):
        if interface:
            cmd = self.cli_command[1].format(interface=interface)
        else:
            cmd = self.cli_command[0]
        out = self.device.execute(cmd)
    else:
        out = output
    ret_dict = {}
    private_trunk_mappings = None
    private_operational = None
    for line in out.splitlines():
        line = line.strip()
        p1 = re.compile('^Name: +(?P<intf>[\\w\\/\\.\\-]+)$')
        m = p1.match(line)
        if m:
            intf = Common.convert_intf_name(m.groupdict()['intf'])
            if (intf not in ret_dict):
                ret_dict[intf] = {}
            continue
        p2 = re.compile('^Switchport: +(?P<switchport_enable>\\w+)$')
        m = p2.match(line)
        if m:
            if (m.groupdict()['switchport_enable'].lower() == 'enabled'):
                ret_dict[intf]['switchport_enable'] = True
            else:
                ret_dict[intf]['switchport_enable'] = False
            continue
        p3 = re.compile('^Administrative +Mode: +(?P<switchport_mode>[\\w\\s]+)$')
        m = p3.match(line)
        if m:
            ret_dict[intf]['switchport_mode'] = m.groupdict()['switchport_mode']
            continue
        p4 = re.compile('^Operational +Mode: +(?P<operational_mode>[\\w\\s]+)( +\\((?P<dummy>[\\w\\s]+)? *member +of +bundle +(?P<port_channel_int>[\\w\\/\\.\\-]+)\\))?$')
        m = p4.match(line)
        if m:
            ret_dict[intf]['operational_mode'] = m.groupdict()['operational_mode']
            bundle_intf = m.groupdict()['port_channel_int']
            if bundle_intf:
                if ('port_channel' not in ret_dict[intf]):
                    ret_dict[intf]['port_channel'] = {}
                bundle_intf = Common.convert_intf_name(bundle_intf)
                ret_dict[intf]['port_channel']['port_channel_int'] = bundle_intf
                ret_dict[intf]['port_channel']['port_channel_member'] = True
                if (bundle_intf not in ret_dict):
                    ret_dict[bundle_intf] = {}
                if ('port_channel' not in ret_dict[bundle_intf]):
                    ret_dict[bundle_intf]['port_channel'] = {}
                ret_dict[bundle_intf]['port_channel']['port_channel_member'] = True
                if ('port_channel_member_intfs' in ret_dict[bundle_intf]['port_channel']):
                    port_list = ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs']
                    port_list.append(intf)
                    ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs'] = port_list
                else:
                    ret_dict[bundle_intf]['port_channel']['port_channel_member_intfs'] = [intf]
            continue
        p5 = re.compile('^Administrative +Trunking +Encapsulation: +(?P<encapsulation>\\w+)$')
        m = p5.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['administrative_encapsulation'] = m.groupdict()['encapsulation'].lower()
            continue
        p6 = re.compile('^Operational +Trunking +Encapsulation: +(?P<encapsulation>\\w+)$')
        m = p6.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['operational_encapsulation'] = m.groupdict()['encapsulation'].lower()
            continue
        p7 = re.compile('^Negotiation +of +Trunking: +(?P<negotiation_of_trunk>\\w+)$')
        m = p7.match(line)
        if m:
            negotiation_of_trunk = m.groupdict()['negotiation_of_trunk'].lower()
            if ('on' in negotiation_of_trunk):
                ret_dict[intf]['negotiation_of_trunk'] = True
            elif ('off' in negotiation_of_trunk):
                ret_dict[intf]['negotiation_of_trunk'] = False
            continue
        p8 = re.compile('^Access +Mode +VLAN: +(?P<access_vlan>[\\d\\-]+)( *\\((?P<access_vlan_name>.+)\\))?$')
        m = p8.match(line)
        if m:
            ret_dict[intf]['access_vlan'] = m.groupdict()['access_vlan']
            if m.groupdict()['access_vlan_name']:
                ret_dict[intf]['access_vlan_name'] = m.groupdict()['access_vlan_name']
            continue
        p9 = re.compile('^Trunking +Native +Mode +VLAN: +(?P<native_vlan>[\\d\\-]+)( *\\((?P<native_vlan_name>.+)\\))?$')
        m = p9.match(line)
        if m:
            if ('encapsulation' not in ret_dict[intf]):
                ret_dict[intf]['encapsulation'] = {}
            ret_dict[intf]['encapsulation']['native_vlan'] = m.groupdict()['native_vlan']
            if m.groupdict()['native_vlan_name']:
                ret_dict[intf]['encapsulation']['native_vlan_name'] = m.groupdict()['native_vlan_name']
            continue
        p10 = re.compile('^Administrative +Native +VLAN +tagging: +(?P<tagging>\\w+)$')
        m = p10.match(line)
        if m:
            if ('enable' in m.groupdict()['tagging'].lower()):
                ret_dict[intf]['native_vlan_tagging'] = True
            else:
                ret_dict[intf]['native_vlan_tagging'] = False
            continue
        p11 = re.compile('^Voice +VLAN: +(?P<vlan>[\\d\\-]+)( *\\((?P<voice_vlan_name>.+)\\))?$')
        m = p11.match(line)
        if m:
            ret_dict[intf]['voice_vlan'] = m.groupdict()['vlan']
            if m.groupdict()['voice_vlan_name']:
                ret_dict[intf]['voice_vlan_name'] = m.groupdict()['voice_vlan_name']
            continue
        p12 = re.compile('^Administrative +private-vlan +host-association: +(?P<ret>[\\w\\-]+)$')
        m = p12.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['host_association'] = m.groupdict()['ret']
            continue
        p13 = re.compile('^Administrative +private-vlan +mapping: +(?P<ret>[\\w\\-]+)$')
        m = p13.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['mapping'] = m.groupdict()['ret']
            continue
        p14 = re.compile('^Administrative +private-vlan +trunk +native +VLAN: +(?P<ret>[\\w\\-]+)$')
        m = p14.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['native_vlan'] = m.groupdict()['ret']
            continue
        p15 = re.compile('^Administrative +private-vlan +trunk +Native +VLAN +tagging: +(?P<ret>[\\w\\-]+)$')
        m = p15.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if ('enable' in ret):
                ret_dict[intf]['private_vlan']['native_vlan_tagging'] = True
            else:
                ret_dict[intf]['private_vlan']['native_vlan_tagging'] = False
            continue
        p16 = re.compile('^Administrative +private-vlan +trunk +encapsulation: +(?P<ret>[\\w\\-]+)$')
        m = p16.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['encapsulation'] = m.groupdict()['ret']
            continue
        p17 = re.compile('^Administrative +private-vlan +trunk +normal +VLANs: +(?P<ret>[\\w\\-]+)$')
        m = p17.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['normal_vlans'] = m.groupdict()['ret']
            continue
        p18 = re.compile('^Administrative +private-vlan +trunk +associations: +(?P<ret>[\\w\\-]+)$')
        m = p18.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            ret = m.groupdict()['ret'].lower()
            if (ret != 'none'):
                ret_dict[intf]['private_vlan']['associations'] = m.groupdict()['ret']
            continue
        p19 = re.compile('^Administrative +private-vlan +trunk +mappings:( *(?P<ret>[\\w\\-]+))?$')
        m = p19.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            private_trunk_mappings = m.groupdict()['ret']
            if (private_trunk_mappings and (private_trunk_mappings.lower() != 'none')):
                ret_dict[intf]['private_vlan']['trunk_mappings'] = private_trunk_mappings
            private_trunk_mappings = 
            continue
        if isinstance(private_trunk_mappings, str):
            p19_1 = re.compile('^(?P<mappings>[\\w\\(\\)\\s]+)$')
            m = p19_1.match(line)
            if m:
                ret = m.groupdict()['mappings']
                private_trunk_mappings += ' {}'.format(ret)
                ret_dict[intf]['private_vlan']['trunk_mappings'] = private_trunk_mappings.strip()
            private_trunk_mappings = None
            continue
        p20 = re.compile('^Operational +private-vlan:( *(?P<private_operational>[\\w\\-]+))?$')
        m = p20.match(line)
        if m:
            if ('private_vlan' not in ret_dict[intf]):
                ret_dict[intf]['private_vlan'] = {}
            private_operational = m.groupdict()['private_operational']
            if (private_operational and (private_operational.lower() != 'none')):
                ret_dict[intf]['private_vlan']['operational'] = private_operational
            private_operational = 
            continue
        p21 = re.compile('^Trunking +VLANs +Enabled: +(?P<trunk_vlans>[\\w\\-\\,\\s]+)$')
        m = p21.match(line)
        if m:
            ret_dict[intf]['trunk_vlans'] = m.groupdict()['trunk_vlans'].lower()
            continue
        if isinstance(private_operational, str):
            p20_1 = re.compile('^(?P<private_operational>[\\w\\(\\)\\s]+)$')
            m = p20_1.match(line)
            if m:
                ret = m.groupdict()['private_operational']
                private_operational += ' {}'.format(ret)
                ret_dict[intf]['private_vlan']['operational'] = private_operational.strip()
            private_operational = None
            continue
        p21_1 = re.compile('^(?P<trunk_vlans>[\\d\\,\\-]+)$')
        m = p21_1.match(line)
        if m:
            ret_dict[intf]['trunk_vlans'] += m.groupdict()['trunk_vlans'].lower()
            continue
        p22 = re.compile('^Pruning +VLANs +Enabled: +(?P<pruning_vlans>[\\w\\-]+)$')
        m = p22.match(line)
        if m:
            ret_dict[intf]['pruning_vlans'] = m.groupdict()['pruning_vlans'].lower()
            continue
        p23 = re.compile('^Capture +Mode +(?P<mode>\\w+)$')
        m = p23.match(line)
        if m:
            mode = m.groupdict()['mode'].lower()
            if ('disabled' in mode):
                ret_dict[intf]['capture_mode'] = False
            else:
                ret_dict[intf]['capture_mode'] = True
            continue
        p24 = re.compile('^Capture +VLANs +Allowed: +(?P<capture_vlans>[\\w\\-]+)$')
        m = p24.match(line)
        if m:
            ret_dict[intf]['capture_vlans'] = m.groupdict()['capture_vlans'].lower()
            continue
        p25 = re.compile('^Protected: +(?P<protected>\\w+)$')
        m = p25.match(line)
        if m:
            if ('false' in m.groupdict()['protected'].lower()):
                ret_dict[intf]['protected'] = False
            else:
                ret_dict[intf]['protected'] = True
            continue
        p26 = re.compile('^Unknown +unicast +blocked: +(?P<block>\\w+)$')
        m = p26.match(line)
        if m:
            if ('disabled' in m.groupdict()['block'].lower()):
                ret_dict[intf]['unknown_unicast_blocked'] = False
            else:
                ret_dict[intf]['unknown_unicast_blocked'] = True
            continue
        p27 = re.compile('^Unknown +multicast +blocked: +(?P<block>\\w+)$')
        m = p27.match(line)
        if m:
            if ('disabled' in m.groupdict()['block'].lower()):
                ret_dict[intf]['unknown_multicast_blocked'] = False
            else:
                ret_dict[intf]['unknown_multicast_blocked'] = True
            continue
        p28 = re.compile('^Appliance +trust: +(?P<trust>[\\w\\-]+)$')
        m = p28.match(line)
        if m:
            if (m.groupdict()['trust'] != 'none'):
                ret_dict[intf]['appliance_trust'] = m.groupdict()['trust']
            continue
    return ret_dict