hunk.code_window: 	})
   	ts.SendTelemetry(TrackConfigExperimental, map[string]any{
   		"client_side_cert_enable":            *cfg.ExperimentalSettings.ClientSideCertEnable,
   		"isdefault_client_side_cert_check":   isDefault(*cfg.ExperimentalSettings.ClientSideCertCheck, model.ClientSideCertCheckPrimaryAuth),
   		"link_metadata_timeout_milliseconds": *cfg.ExperimentalSettings.LinkMetadataTimeoutMilliseconds,
   		"restrict_system_admin":              *cfg.ExperimentalSettings.RestrictSystemAdmin,
   		"use_new_saml_library":               *cfg.ExperimentalSettings.UseNewSAMLLibrary,
   		"cloud_billing":                      *cfg.ExperimentalSettings.CloudBilling,
   		"enable_shared_channels":             *cfg.ExperimentalSettings.EnableSharedChannels,
   		"enable_remote_cluster_service":      *cfg.ExperimentalSettings.EnableRemoteClusterService && cfg.FeatureFlags.EnableRemoteClusterService,
   		"enable_app_bar":                     *cfg.ExperimentalSettings.EnableAppBar,
   	})
   	ts.SendTelemetry(TrackConfigAnalytics, map[string]any{
  
hunk.labels: keep keep keep replace replace replace replace replace replace replace replace replace keep keep keep
hunk.after_edit: 		"client_side_cert_enable":                *cfg.ExperimentalSettings.ClientSideCertEnable,
   		"isdefault_client_side_cert_check":       isDefault(*cfg.ExperimentalSettings.ClientSideCertCheck, model.ClientSideCertCheckPrimaryAuth),
   		"link_metadata_timeout_milliseconds":     *cfg.ExperimentalSettings.LinkMetadataTimeoutMilliseconds,
   		"restrict_system_admin":                  *cfg.ExperimentalSettings.RestrictSystemAdmin,
   		"use_new_saml_library":                   *cfg.ExperimentalSettings.UseNewSAMLLibrary,
   		"cloud_billing":                          *cfg.ExperimentalSettings.CloudBilling,
   		"enable_shared_channels":                 *cfg.ExperimentalSettings.EnableSharedChannels,
   		"enable_remote_cluster_service":          *cfg.ExperimentalSettings.EnableRemoteClusterService && cfg.FeatureFlags.EnableRemoteClusterService,
   		"enable_app_bar":                         *cfg.ExperimentalSettings.EnableAppBar,
   		"enable_upgrade_for_self_hosted_starter": *cfg.ExperimentalSettings.EnableUpgradeForSelfHostedStarter,
  
hunk.file_path: services/telemetry/telemetry.go
hunk.type: replace
file: // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
  // See LICENSE.txt for license information.
  
  package model
  
  import (
  	"encoding/json"
  	"net/http"
  )
  
  type MemberInvite struct {
  	Emails     []string `json:"emails"`
  	ChannelIds []string `json:"channelIds,omitempty"`
  	Message    string   `json:"message"`
  }
  
  // IsValid validates that the invitation info is loaded correctly and with the correct structure
  func (i *MemberInvite) IsValid() *AppError {
  	if len(i.Emails) == 0 {
  		return NewAppError("MemberInvite.IsValid", "model.member.is_valid.emails.app_error", nil, "", http.StatusBadRequest)
  	}
  
  	if len(i.ChannelIds) > 0 {
  		for _, channel := range i.ChannelIds {
  			if len(channel) != 26 {
  				return NewAppError("MemberInvite.IsValid", "model.member.is_valid.channel.app_error", nil, "channel="+channel, http.StatusBadRequest)
  			}
  		}
  	}
  
  	return nil
  }
  
  func (i *MemberInvite) UnmarshalJSON(b []byte) error {
  	var emails []string
  	if err := json.Unmarshal(b, &emails); err == nil {
  		*i = MemberInvite{}
  		i.Emails = emails
  		return nil
  	}
  
  	type TempMemberInvite MemberInvite
  	var o2 TempMemberInvite
  	if err := json.Unmarshal(b, &o2); err != nil {
  		return err
  	}
  	*i = MemberInvite(o2)
  	return nil
  }
  