def parse_credentials(self):
        """
        Parse credentials from the command line or from a file specified.
        Usernames can be specified with a domain (domain\\username) or without (username).
        If the file contains domain\\username the domain specified will be overwritten by the one in the file.

        :return: domain[], username[], owned[], secret[], cred_type[]
        """
        domain = []
        username = []
        owned = []
        secret = []
        cred_type = []

        # Parse usernames
        for user in self.args.username:
            if isfile(user):
                with open(user, 'r') as user_file:
                    for line in user_file:
                        if "\\" in line:
                            domain_single, username_single = line.split("\\")
                        else:
                            domain_single = self.args.domain if hasattr(self.args, "domain") and self.args.domain else self.domain
                            username_single = line
                        domain.append(domain_single)
                        username.append(username_single.strip())
                        owned.append(False)
            else:
                if "\\" in user:
                    domain_single, username_single = user.split("\\")
                else:
                    domain_single = self.args.domain if hasattr(self.args, "domain") and self.args.domain else self.domain
                    username_single = user
                domain.append(domain_single)
                username.append(username_single)
                owned.append(False)

        # Parse passwords
        for password in self.args.password:
            if isfile(password):
                with open(password, 'r') as password_file:
                    for line in password_file:
                        secret.append(line.strip())
                        cred_type.append('plaintext')
            else:
                secret.append(password)
                cred_type.append('plaintext')

        # Parse NTLM-hashes
        if hasattr(self.args, "hash") and self.args.hash:
            for ntlm_hash in self.args.hash:
                if isfile(ntlm_hash):
                    with open(ntlm_hash, 'r') as ntlm_hash_file:
                        for line in ntlm_hash_file:
                            secret.append(line.strip())
                            cred_type.append('hash')
                else:
                    secret.append(ntlm_hash)
                    cred_type.append('hash')

        # Parse AES keys
        if self.args.aesKey:
            for aesKey in self.args.aesKey:
                if isfile(aesKey):
                    with open(aesKey, 'r') as aesKey_file:
                        for line in aesKey_file:
                            secret.append(line.strip())
                            cred_type.append('aesKey')
                else:
                    secret.append(aesKey)
                    cred_type.append('aesKey')

        return domain, username, owned, secret, cred_type, [None] * len(secret)

        Parse credentials from the command line or from a file specified.
        Usernames can be specified with a domain (domain\username) or without (username).
        If the file contains domain\username the domain specified will be overwritten by the one in the file.

        :return: domain[], username[], owned[], secret[], cred_type[]
        
cme/connection.py