// Code generated by tools/gen-cldr; see SPECS/50-cldr-data.md#cldr-pin-rationale; DO NOT EDIT.

// Source: CLDR v48.1.0 / ICU 78 / tzdata 2025b (input hashes in internal/cldr/locale/manifest.go)
// Generated: reproducible from tools/gen-cldr with pinned inputs; no timestamps or machine-local paths
// Schema: SPECS/50-cldr-data.md#cldr-data-package-convention
package cldrlocale

import (
	"slices"
	"sync"
)

var (
	timeZoneDataOnce       sync.Once
	canonicalTimeZoneLinks map[string]string
	timeZonesByRegion      map[string][]string
)

func loadTimeZoneData() {
	canonicalTimeZoneLinks = map[string]string{
		"US/Eastern":    "America/New_York",
		"US/Pacific":    "America/Los_Angeles",
		"Asia/Calcutta": "Asia/Kolkata",
	}

	timeZonesByRegion = map[string][]string{
		"BR": {
			"America/Araguaina", "America/Bahia", "America/Belem", "America/Boa_Vista",
			"America/Campo_Grande", "America/Cuiaba", "America/Eirunepe", "America/Fortaleza",
			"America/Maceio", "America/Manaus", "America/Noronha", "America/Porto_Velho",
			"America/Recife", "America/Rio_Branco", "America/Santarem", "America/Sao_Paulo",
		},
		"CN": {"Asia/Shanghai", "Asia/Urumqi"},
		"EG": {"Africa/Cairo"},
		"GB": {"Europe/London"},
		"IN": {"Asia/Calcutta"},
		"SA": {"Asia/Riyadh"},
		"US": {
			"America/Adak", "America/Anchorage", "America/Boise", "America/Chicago",
			"America/Denver", "America/Detroit", "America/Indiana/Knox", "America/Indiana/Marengo",
			"America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay",
			"America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis",
			"America/Juneau", "America/Kentucky/Monticello", "America/Los_Angeles", "America/Louisville",
			"America/Menominee", "America/Metlakatla", "America/New_York", "America/Nome",
			"America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem",
			"America/Phoenix", "America/Sitka", "America/Yakutat", "Pacific/Honolulu",
		},
	}
}

func CanonicalTimeZoneLink(name string) string {
	timeZoneDataOnce.Do(loadTimeZoneData)
	if canonical := canonicalTimeZoneLinks[name]; canonical != "" {
		return canonical
	}
	return name
}

func TimeZonesForRegion(region string) []string {
	timeZoneDataOnce.Do(loadTimeZoneData)
	zones, ok := timeZonesByRegion[region]
	if !ok {
		return nil
	}
	return slices.Clone(zones)
}
