code: func (d *DNSProvider) Present(domain, token, keyAuth string) error {
  	tlds, err := d.getTLDs()
  	if err != nil {
  		return fmt.Errorf("namecheap: %v", err)
  	}
  
  	ch, err := newChallenge(domain, keyAuth, tlds)
  	if err != nil {
  		return fmt.Errorf("namecheap: %v", err)
  	}
  
  	records, err := d.getHosts(ch.sld, ch.tld)
  	if err != nil {
  		return fmt.Errorf("namecheap: %v", err)
  	}
  
  	record := Record{
  		Name:    ch.key,
  		Type:    "TXT",
  		Address: ch.keyValue,
  		MXPref:  "10",
  		TTL:     strconv.Itoa(d.config.TTL),
  	}
  
  	records = append(records, record)
  
  	if d.config.Debug {
  		for _, h := range records {
  			log.Printf("%-5.5s %-30.30s %-6s %-70.70s", h.Type, h.Name, h.TTL, h.Address)
  		}
  	}
  
  	err = d.setHosts(ch.sld, ch.tld, records)
  	if err != nil {
  		return fmt.Errorf("namecheap: %v", err)
  	}
  	return nil
  }
docs: // Present installs a TXT record for the DNS challenge.