Problema para persistir clase ManyToMany

Estou tentando persistir a classe cargo com uma lista de Perfil, mas da erro !
Ve se alguem sabe onde errei !

Classe tela

[code]@Entity
public class Telas implements Serializable {
@ManyToMany
private List perfils;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nmTelas;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNmTelas() {
    return nmTelas;
}

public void setNmTelas(String nmTelas) {
    this.nmTelas = nmTelas;
}

public List<Perfil> getPerfils() {
    return perfils;
}

public void setPerfils(List<Perfil> perfils) {
    this.perfils = perfils;
} 

}//fim da Classe Telas[/code]

Classe Cargo

[code]
@Entity
public class Cargo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nmCargo;
@ManyToMany
private List listPerfil;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNmCargo() {
    return nmCargo;
}

public void setNmCargo(String nmCargo) {
    this.nmCargo = nmCargo;
}

public List<Perfil> getListPerfil() {
    return listPerfil;
}

public void setListPerfil(List<Perfil> listPerfil) {
    this.listPerfil = listPerfil;
}

@Override
public String toString() {
    return  nmCargo;
}    

}//fim da Classe Cargo [/code]

Classe perfil :

[code]@Entity
public class Perfil implements Serializable {
@ManyToMany(mappedBy = “listPerfil”)
private List cargos;
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String nmPerfil;
@ManyToMany(mappedBy = “perfils”)
private List listaTelas;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNmPerfil() {
    return nmPerfil;
}

public void setNmPerfil(String nmPerfil) {
    this.nmPerfil = nmPerfil;
}

public List<Telas> getListaTelas() {
    return listaTelas;
}

public void setListaTelas(List<Telas> listaTelas) {
    this.listaTelas = listaTelas;
}

@Override
public String toString() {
    return nmPerfil;
}

}//fim da Classe Perfil[/code]

tentando persistir :

[code]public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    EntityManager em = EntityManagerProvider.getEntityManagerFactory().createEntityManager();



    Telas t = new Telas();
    Telas t2 = new Telas();
    t.setNmTelas("Cargo");
    t2.setNmTelas("Funcionario");

    Perfil p = new Perfil();
    p.setNmPerfil("Venda");        
    p.getListaTelas().add(t);
    p.getListaTelas().add(t2);

    Cargo c = new Cargo();
    c.setNmCargo("Caixa");        
    c.getListPerfil().add(p);

    em.getTransaction().begin();
    em.persist(t);
    em.persist(t2);
    em.persist(p);
    em.persist(c);
    em.getTransaction().commit();



    
}

}[/code]

da o sequinte erro :

Exception in thread "main" java.lang.NullPointerException at tcc.Main.main(Main.java:35) Java Result: 1

erro está na linha 35…oq q tem lá?