code: func (a *Attempt_ID) SetDMEncoded(val string) error {
  	toks := strings.SplitN(val, "|", 2)
  	if len(toks) != 2 {
  		return fmt.Errorf("unable to parse Attempt id: %q", val)
  	}
  	an, err := strconv.ParseUint(toks[1], 16, 32)
  	if err != nil {
  		return err
  	}
  
  	a.Quest = toks[0]
  	a.Id = flipMask ^ uint32(an)
  	return nil
  }
docs: // SetDMEncoded decodes val into this Attempt_ID, returning an error if
  // there's a problem. Numeric values are inverted if flip is true.