Mô đun:Storm categories/categories

local p = {}
-- Define categories
-- All sortkeys have been guessed. They may be changed by common sense
-- or consensus at Wikipedia talk:WikiProject Tropical cyclones
local cats = {
	--
	--  TROPICAL CYCLONES
	--
	severe = {
		color = "C0FFC0",
		name = "Severe tropical storm",
		sortkey = 120,
		icon = "18px"
	},
	mtstorm = {
		 color = "4DFFFF", -- Old  did not support. Value guessed.
		 name = "Moderate tropical storm",
		 sortkey = 105,
		 icon = "18px"
	},
	storm = {
		color = "4DFFFF",
		name = "Tropical storm",
		sortkey = 100,
		icon = "18px"
	},
	severedep = {
		color = "6EC1EA", -- Old  did not support. Value guessed.
		name = "Severe tropical depression",
		sortkey = 120
	},
	moddepression = {
		color = "6EC1EA", -- Old  did not support. Value guessed.
		name = "Moderate tropical depression",
		sortkey = 95
	},
	depression = {
		color = "6EC1EA",
		name = "Tropical depression",
		sortkey = 90,
		icon = "25px"
	},
	disturbance = {
		color = "1591DE",
		name = "Tropical disturbance",
		sortkey = 80,
		icon = "25px"
	},
	subtropicalcyclone = {
		color = "4DFFFF",
		name = "Subtropical cyclone",
		sortkey = 70
	},
	subtropical = {
		color = "4DFFFF",
		name = "Subtropical storm",
		sortkey = 65,
		icon = "18px"
	},
	subdepression = {
		color = "6EC1EA",
		name = "Subtropical depression",
		sortkey = 62,
		icon = "25px"
	},
	overland = {
		color = "6EC1EA",
		name = "Overland depression",
		sortkey = 60,
		icon = "25px"
	},
	subdisturbance = {
		color = "1591DE",
		name = "Subtropical disturbance",
		sortkey = 55,
		icon = "25px"
	},
	extratropical = {
		color = "CCCCCC",
		name = "Extratropical cyclone",
		sortkey = 50,
		icon = "18px"
	},
	monsoondepression = {
		color = "6EC1EA",
		name = "Monsoon depression",
		sortkey = 30,
		icon = "25px"
	},
	potential = {
		color = "1591DE",
		name = "Potential tropical cyclone",
		sortkey = 25,
		icon = "25px"
	},
	posttropical = {
		color = "CCCCCC",
		name = "Post-tropical depression",
		sortkey = 70,
		icon = "25px"
	},
	remnant = {
		color = "CCCCCC",
		name = "Post-tropical depression",
		sortkey = 70,
		icon = "25px"
	},
	unknown = {
		color = "C0C0C0",
		name = "Unknown-strength storm",
		sortkey = 0,
		icon = "?"
	},
	-- SSWHS hurricane categories
	cat5 = {
		color = "A188FC",
		name = {
			atl = "Category 5 hurricane",
			epac = "Category 5 hurricane",
			satl = "Category 5 hurricane",
			wpac = "Category 5-equivalent super typhoon",
			default = "Category 5-equivalent tropical cyclone"
		},
		sortkey = 80050,
		icon = "18px"
	},
	cat4 = {
		color = "FF738A",
		name = {
			atl = "Category 4 hurricane",
			epac = "Category 4 hurricane",
			satl = "Category 4 hurricane",
			wpac = "Category 4-equivalent typhoon",
			default = "Category 4-equivalent tropical cyclone"
		},
		sortkey = 80040,
		icon = "18px"
	},
	cat3 = {
		color = "FF9E59",
		name = {
			atl = "Category 3 hurricane",
			epac = "Category 3 hurricane",
			satl = "Category 3 hurricane",
			wpac = "Category 3-equivalent typhoon",
			default = "Category 3-equivalent tropical cyclone"
		},
		sortkey = 80030,
		icon = "18px"
	},
	cat2 = {
		color = "FFD98C",
		name = {
			atl = "Category 2 hurricane",
			epac = "Category 2 hurricane",
			satl = "Category 2 hurricane",
			wpac = "Category 2-equivalent typhoon",
			default = "Category 2-equivalent tropical cyclone"
		},
		sortkey = 80020,
		icon = "18px"
	},
	cat1 = {
		color = "FFFFD9",
		name = {
			atl = "Category 1 hurricane",
			epac = "Category 1 hurricane",
			satl = "Category 1 hurricane",
			wpac = "Category 1-equivalent typhoon",
			default = "Category 1-equivalent tropical cyclone"
		},
		sortkey = 80010,
		icon = "18px"
	},
	supertyphoon = {
		color = "FF738A",
		name = "Category 4 super typhoon",
		sortkey = 80045
	},
	typhoon = {
		color = "FFD98C",
		name = "Typhoon",
		sortkey = 60010
	},
	-- HKO
	svtyphoon = {
		color = "FF738A",
		name = "Severe typhoon",
		sortkey = 60015
	},
	vstyphoon = {
		color = "FF738A",
		name = "Very strong typhoon",
		sortkey = 60020,
		icon = "18px"
	},
	vityphoon = {
		color = "A188FC",
		name = "Violent typhoon",
		sortkey = 60030,
		icon = "18px"
	},
	-- PAGASA
	styphoon = {
		color = "A188FC",
		name = "Supertyphoon",
		sortkey = 60050
	},
	sprcyclstorm = {
		color = "A188FC",
		name = "Super cyclonic storm",
		sortkey = 50020,
		icon = "18px"
	},
	esvrcyclstorm = {
		color = "FF738A",
		name = "Extremely severe cyclonic storm",
		sortkey = 50015,
		icon = "18px"
	},
	vsvrcyclstorm = {
		color = "FFD98C",
		name = "Very severe cyclonic storm",
		sortkey = 50010,
		icon = "18px"
	},
	svrcyclstorm = {
		color = "C0FFC0",
		name = "Severe cyclonic storm",
		sortkey = 50008,
		icon = "18px"
	},
	niocyclone = {
		color = "4DFFFF",
		name = "Cyclonic storm",
		sortkey = 50006,
		icon = "18px"
	},
	deepdepression = {
		color = "6EC1EA",
		name = "Deep depression",
		sortkey = 50002,
		icon = "25px"
	},
	niodepression = {
		color = "1591DE",
		name = "Depression",
		sortkey = 50001,
		icon = "25px"
	},
	nioland = {
		color = "1591DE",
		name = "Land depression",
		sortkey = 50000,
		icon = "25px"
	},
	aus5 = {
		color = "A188FC",
		name = "Category 5 severe tropical cyclone",
		sortkey = 40015,
		icon = "18px"
	},
	aus4 = {
		color = "FF738A",
		name = "Category 4 severe tropical cyclone",
		sortkey = 40013,
		icon = "18px"
	},
	aus3 = {
		color = "FFD98C",
		name = "Category 3 severe tropical cyclone",
		sortkey = 40010,
		icon = "18px"
	},
	aus2 = {
		color = "C0FFC0",
		name = "Category 2 tropical cyclone",
		sortkey = 40008,
		icon = "18px"
	},
	aus1 = {
		color = "4DFFFF",
		name = "Category 1 tropical cyclone",
		sortkey = 40006,
		icon = "18px"
	},
	low = {
		color = "6EC1EA",
		name = "Tropical low",
		sortkey = 40002,
		icon = "25px"
	},
	sublow = {
		color = "6EC1EA",
		name = "Subtropical low",
		sortkey = 40000
	},
	vintense = {
		color = "A188FC",
		name = "Very intense tropical cyclone",
		sortkey = 30010,
		icon = "18px"
	},
	intense = {
		color = "FF738A",
		name = "Intense tropical cyclone",
		sortkey = 30008,
		icon = "18px"
	},
	tropicalcyclone = {
		color = "FFD98C",
		name = "Tropical cyclone",
		sortkey = 30006,
		icon = "TC"
	},
	mstorm = {
		color = "4DFFFF",
		name = "Moderate tropical storm",
		sortkey = 30004,
		icon = "18px"
	},
	zodw = {
		color = "1591DE",
		name = "Zone of disturbed weather",
		sortkey = 30000,
		icon = "25px"
	},
	shemsvrtc = {
		color = "FFD98C",
		name = "Severe tropical cyclone",
		sortkey = 20020
	},
	shem5 = {
		color = "A188FC",
		name = "Severe tropical cyclone",
		sortkey = 20010
	},
	shem4 = {
		color = "FFD98C",
		name = "Tropical cyclone",
		sortkey = 20008
	},
	shem2 = {
		color = "C0FFC0",
		name = "Tropical cyclone",
		sortkey = 20008
	},
	shem1 = {
		color = "4DFFFF",
		name = "Tropical cyclone",
		sortkey = 20008
	},
	--
	-- WINTER STORMS
	--
	-- Regional Snowfall Index
	rsi0 = {
		color = "CCCCCC",
		name = "Category 0 \"Nuisance\"",
		sortkey = 80100,
		icon = "25px"
	},
	rsi1 = {
		color = "FFFFD9",
		name = "Category 1 \"Notable\"",
		sortkey = 80110,
		icon = "25px"
	},
	rsi2 = {
		color = "FFD98C",
		name = "Category 2 \"Minor\"",
		sortkey = 80120,
		icon = "25px"
	},
	rsi3 = {
		color = "FF9E59",
		name = "Category 3 \"Major\"",
		sortkey = 80130,
		icon = "25px"
	},
	rsi4 = {
		color = "FF738A",
		name = "Category 4 \"Crippling\"",
		sortkey = 80140,
		icon = "25px"
	},
	rsi5 = {
		color = "A188FC",
		name = "Category 5 \"Extreme\"",
		sortkey = 80150,
		icon = "25px"
	},
	-- Winter Storm Severity Index
	wssinone = {
		color = "CCCCCC",
		name = "No impacts",
		sortkey = 80200,
	},
	wssilimited = {
		color = "1591DE",
		name = "Limited impacts",
		sortkey = 80210,
	},
	wssiminor = {
		color = "FFFFD9",
		name = "Minor impacts",
		sortkey = 80220,
	},
	wssimoderate = {
		color = "FF9E59",
		name = "Moderate impacts",
		sortkey = 80230,
	},
	wssimajor = {
		color = "FF738A",
		name = "Major impacts",
		sortkey = 80240,
	},
	wssiextreme = {
		color = "A188FC",
		name = "Extreme impacts",
		sortkey = 80250,
	},
	spia0 = {
		color = "4DFFFF",
		name = "Ice Damage Index: 0",
		sortkey = 80300,
		icon = "30px"
	},
	spia1 = {
		color = "FFFFD9",
		name = "Ice Damage Index: 1",
		sortkey = 80301,
		icon = "30px"
	},
	spia2 = {
		color = "FFD98C",
		name = "Ice Damage Index: 2",
		sortkey = 80302,
		icon = "30px"
	},
	spia3 = {
		color = "FF9E59",
		name = "Ice Damage Index: 3",
		sortkey = 80303,
		icon = "30px"
	},
	spia4 = {
		color = "FF738A",
		name = "Ice Damage Index: 4",
		sortkey = 80304,
		icon = "30px"
	},
	spia5 = {
		color = "A188FC",
		name = "Ice Damage Index: 5",
		sortkey = 80305,
		icon = "30px"
	},
	--
	-- TORNADOES
	--
	efu = {
		color = "CCCCCC",
		name = "EFU tornado",
		sortkey = 1001,
		icon = "25px"
	},
	ef0 = {
		color = "4DFFFF",
		name = "EF0 tornado",
		sortkey = 1000,
		icon = "25px"
	},
	ef1 = {
		color = "FFFFD9",
		name = "EF1 tornado",
		sortkey = 1010,
		icon = "25px"
	},
	ef2 = {
		color = "FFD98C",
		name = "EF2 tornado",
		sortkey = 1020,
		icon = "25px"
	},
	ef3 = {
		color = "FF9E59",
		name = "EF3 tornado",
		sortkey = 1030,
		icon = "25px"
	},
	ef4 = {
		color = "FF738A",
		name = "EF4 tornado",
		sortkey = 1040,
		icon = "25px"
	},
	ef5 = {
		color = "A188FC",
		name = "EF5 tornado",
		sortkey = 1050,
		icon = "25px"
	},
ifu = {
		color = "CCCCCC",
		name = "IFU tornado",
		sortkey = 1100,
		icon = "30px"
	},
	if0m = {
		color = "58EBF8",
		name = "IF0- tornado",
		sortkey = 1101,
		icon = "30px"
	},
	if0 = {
		color = "4DFFFF",
		name = "IF0 tornado",
		sortkey = 1102,
		icon = "30px"
	},
	if0p = {
		color = "89FFF3",
		name = "IF0+ tornado",
		sortkey = 1103,
		icon = "30px"
	},
	if1m = {
		color = "C4FFE6",
		name = "IF1- tornado",
		sortkey = 1104,
		icon = "30px"
	},
	if1 = {
		color = "FFFFD9",
		name = "IF1 tornado",
		sortkey = 1105,
		icon = "30px"
	},
	if1p = {
		color = "FFF2BF",
		name = "IF1+ tornado",
		sortkey = 1106,
		icon = "30px"
	},
	if2m = {
		color = "FFE5A5",
		name = "IF2- tornado",
		sortkey = 1107,
		icon = "30px"
	},
	if2 = {
		color = "FFD98C",
		name = "IF2 tornado",
		sortkey = 1108,
		icon = "30px"
	},
	if2p = {
		color = "FFC57B",
		name = "IF2+ tornado",
		sortkey = 1109,
		icon = "30px"
	},
	if3 = {
		color = "FF9E59",
		name = "IF3 tornado",
		sortkey = 1110,
		icon = "30px"
	},
	if4 = {
		color = "FF738A",
		name = "IF4 tornado",
		sortkey = 1111,
		icon = "30px"
	},
	if5 = {
		color = "A188FC",
		name = "IF5 tornado",
		sortkey = 1112,
		icon = "30px"
	},
tu = {
		color = "CCCCCC",
		name = "TU tornado",
		sortkey = 1200,
		icon = "30px"
	},
	fc = {
		color = "6EC1EA",
		name = "Funnel Cloud",
		sortkey = 1201,
		icon = "30px"
	},
	t0 = {
		color = "5EE0F5",
		name = "T0 tornado",
		sortkey = 1202,
		icon = "30px"
	},
	t1 = {
		color = "4DFFFF",
		name = "T1 tornado",
		sortkey = 1203,
		icon = "30px"
	},
	t2 = {
		color = "A6FFEC",
		name = "T2 tornado",
		sortkey = 1204,
		icon = "30px"
	},
	t3 = {
		color = "FFFFD9",
		name = "T3 tornado",
		sortkey = 1205,
		icon = "30px"
	},
	t4 = {
		color = "FFECB3",
		name = "T4 tornado",
		sortkey = 1206,
		icon = "30px"
	},
	t5 = {
		color = "FFD98C",
		name = "T5 tornado",
		sortkey = 1207,
		icon = "30px"
	},
	t6 = {
		color = "FFBC73",
		name = "T6 tornado",
		sortkey = 1208,
		icon = "30px"
	},
	t7 = {
		color = "FF9E59",
		name = "T7 tornado",
		sortkey = 1209,
		icon = "30px"
	},
	t8 = {
		color = "FF8972",
		name = "T8 tornado",
		sortkey = 1210,
		icon = "30px"
	},
	t9 = {
		color = "FF738A",
		name = "T9 tornado",
		sortkey = 1211,
		icon = "30px"
	},
	t10 = {
		color = "D07EC3",
		name = "T10 tornado",
		sortkey = 1212,
		icon = "30px"
	},
	t11 = {
		color = "A188FC",
		name = "T11 tornado",
		sortkey = 1213,
		icon = "30px"
	},
	-- Beaufort Scale (windstorms)
	beaufort0 = {
		color = "FFFFFF",
		name = "Calm (Force 0)",
		sortkey = 1500,
		icon = "35px"
	},
	beaufort1 = {
		color = "757575",
		name = "Light Air (Force 1)",
		sortkey = 1510,
		icon = "35px"
	},
	beaufort2 = {
		color = "909090",
		name = "Light Breeze (Force 2)",
		sortkey = 1520,
		icon = "35px"
	},
	beaufort3 = {
		color = "B7B7B7",
		name = "Gentle Breeze (Force 3)",
		sortkey = 1530,
		icon = "35px"
	},
	beaufort4 = {
		color = "D2D2D2",
		name = "Moderate Breeze (Force 4)",
		sortkey = 1540,
		icon = "35px"
	},
	beaufort5 = {
		color = "F1F1F1",
		name = "Fresh Breeze (Force 5)",
		sortkey = 1550,
		icon = "35px"
	},
	beaufort6 = {
		color = "1591DE",
		name = "Strong Breeze (Force 6)",
		sortkey = 1560,
		icon = "35px"
	},
beaufort7 = {
		color = "6EC1EA",
		name = "Near Gale (Force 7)",
		sortkey = 1570,
		icon = "35px"
	},
beaufort8 = {
		color = "5EE0F5",
		name = "Gale (Force 8)",
		sortkey = 1580,
		icon = "35px"
	},
beaufort9 = {
		color = "4DFFFF",
		name = "Strong Gale (Force 9)",
		sortkey = 1590,
		icon = "35px"
	},
beaufort10 = {
		color = "C0FFC0",
		name = "Storm (Force 10)",
		sortkey = 1600,
		icon = "35px"
	},
beaufort11 = {
		color = "E0FFCD",
		name = "Violent Storm (Force 11)",
		sortkey = 1610,
		icon = "35px"
	},
beaufort12 = {
		color = "FFFFD9",
		name = "Hurricane-force (Force 12)",
		sortkey = 1620,
		icon = "35px"
	},
	-- Drought/Flood
	palmer7 = {
		color = "FF0800",
		name = "Extreme Drought",
		sortkey = 81000,
	},
	palmer6 = {
		color = "FF5A55",
		name = "Severe Drought",
		sortkey = 81001,
	},
	palmer5 = {
		color = "FFB3B0",
		name = "Moderate Drought",
		sortkey = 81002,
	},
	palmer4 = {
		color = "FFFFFF",
		name = "Near Normal",
		sortkey = 81003,
	},
	palmer3 = {
		color = "A9FEC4",
		name = "Moderately Moist",
		sortkey = 81004,
	},
	palmer2 = {
		color = "5FFF46",
		name = "Very Moist",
		sortkey = 81005,
	},
	palmer1 = {
		color = "1BC800",
		name = "Extremely moist",
		sortkey = 81006,
	},
drought0 = {
		color = "FFFFD9",
		name = "Abnormally Dry",
		sortkey = 81100,
	},
drought1 = {
		color = "FFD98C",
		name = "Moderate Drought",
		sortkey = 81101,
	},
drought2 = {
		color = "FF9E59",
		name = "Severe Drought",
		sortkey = 81102,
	},
drought3 = {
		color = "FF738A",
		name = "Extreme Drought",
		sortkey = 81103,
	},
drought4 = {
		color = "A188FC",
		name = "Exceptional Drought",
		sortkey = 81104,
	},
atmosriv1 = {
		color = "FFFFD9",
		name = "Category 1: Weak (Atmospheric river)",
		sortkey = 81200,
		icon = "30px"
	},
atmosriv2 = {
		color = "FFD98C",
		name = "Category 2: Moderate (Atmospheric river)",
		sortkey = 81201,
		icon = "30px"
	},
atmosriv3 = {
		color = "FF9E59",
		name = "Category 3: Strong (Atmospheric river)",
		sortkey = 81202,
		icon = "30px"
	},
atmosriv4 = {
		color = "FF738A",
		name = "Category 4: Extreme (Atmospheric river)",
		sortkey = 81203,
		icon = "30px"
	},
atmosriv5 = {
		color = "A188FC",
		name = "Category 5: Exceptional (Atmospheric river)",
		sortkey = 81204,
		icon = "30px"
	},
	-- Space Weather
radio1 = {
		color = "FFFFD9",
		name = "Minor Radio Blackout",
		sortkey = 82000,
	},
radio2 = {
		color = "FFD98C",
		name = "Moderate Radio Blackout",
		sortkey = 82001,
	},
radio3 = {
		color = "FF9E59",
		name = "Strong Radio Blackout",
		sortkey = 82002,
	},
radio4 = {
		color = "FF738A",
		name = "Severe Radio Blackout",
		sortkey = 82003,
	},
radio5 = {
		color = "A188FC",
		name = "Extreme Radio Blackout",
		sortkey = 82004,
	},
solar1 = {
		color = "FFFFD9",
		name = "Minor Solar Radiation Storms",
		sortkey = 82100,
	},
solar2 = {
		color = "FFD98C",
		name = "Moderate Solar Radiation Storms",
		sortkey = 82101,
	},
solar3 = {
		color = "FF9E59",
		name = "Strong Solar Radiation Storms",
		sortkey = 82102,
	},
solar4 = {
		color = "FF738A",
		name = "Severe Solar Radiation Storms",
		sortkey = 82103,
	},
solar5 = {
		color = "A188FC",
		name = "Extreme Solar Radiation Storms",
		sortkey = 82104,
	},
geo1 = {
		color = "FFFFD9",
		name = "Minor Geomagnetic Storms",
		sortkey = 82200,
		icon = "35px"
	},
geo2 = {
		color = "FFD98C",
		name = "Moderate Geomagnetic Storms",
		sortkey = 82201,
		icon = "35px"
	},
geo3 = {
		color = "FF9E59",
		name = "Strong Geomagnetic Storms",
		sortkey = 82202,
		icon = "35px"
	},
geo4 = {
		color = "FF738A",
		name = "Severe Geomagnetic Storms",
		sortkey = 82203,
		icon = "35px"
	},
geo5 = {
		color = "A188FC",
		name = "Extreme Geomagnetic Storms",
		sortkey = 82204,
		icon = "35px"
	},
-- Heatwaves and Fireweather/Coldwaves/Temperature
heatw = {
		color = "FFFFD9",
		name = "Warm",
		sortkey = 83000,
	},
heat4 = {
		color = "FFD98C",
		name = "Category 4: Very Warm",
		sortkey = 83001,
	},
heat3 = {
		color = "FF9E59",
		name = "Category 3: Hot",
		sortkey = 83002,
	},
heat2 = {
		color = "FF738A",
		name = "Category 2: Very Hot",
		sortkey = 83003,
	},
heat1 = {
		color = "A188FC",
		name = "Category 1: Extremely Hot",
		sortkey = 83004,
	},
redflagnil = {
		color = "4DFFFF",
		name = "RFTI NIL",
		sortkey = 83100,
		icon = "35px"
	},
redflagelv = {
		color = "FFFFD9",
		name = "RFTI Elevated",
		sortkey = 83101,
		icon = "35px"
	},
redflagcrl = {
		color = "FFD98C",
		name = "RFTI Critical-low",
		sortkey = 83102,
		icon = "35px"
	},
redflagcrh = {
		color = "FF9E59",
		name = "RFTI Critical-High",
		sortkey = 83103,
		icon = "35px"
	},
redflagecr = {
		color = "FF738A",
		name = "RFTI Extremely Critical",
		sortkey = 83104,
		icon = "35px"
	},
redflaghcr = {
		color = "A188FC",
		name = "RFTI Historically critical",
		sortkey = 83004,
		icon = "35px"
	},
tempb70cn = {
		color = "B7698E",
		name = "< -70C temperature",
		sortkey = 2000,
	},
temp70cn = {
		color = "CB83A5",
		name = "≥ -70C temperature",
		sortkey = 2001,
	},
temp65cn = {
		color = "DCAAC2",
		name = "≥ -65C temperature",
		sortkey = 2002,
	},
temp60cn = {
		color = "FAD6EB",
		name = "≥ -60C temperature",
		sortkey = 2003,
	},
temp55cn = {
		color = "868686",
		name = "≥ -55C temperature",
		sortkey = 2004,
	},
temp50cn = {
		color = "BEBEBE",
		name = "≥ -50C temperature",
		sortkey = 2005,
	},
temp45cn = {
		color = "DCDCDC",
		name = "≥ -45C temperature",
		sortkey = 2006,
	},
temp40cn = {
		color = "FFFFFF",
		name = "≥ -40C temperature",
		sortkey = 2007,
	},
temp35cn = {
		color = "FEE9FF",
		name = "≥ -35C temperature",
		sortkey = 2008,
	},
temp30cn = {
		color = "CEA8E7",
		name = "≥ -30C temperature",
		sortkey = 2009,
	},
temp25cn = {
		color = "9F6FD2",
		name = "≥ -25C temperature",
		sortkey = 2010,
	},
temp20cn = {
		color = "716EEE",
		name = "≥ -20C temperature",
		sortkey = 2011,
	},
temp15cn = {
		color = "1e96f8",
		name = "≥ -15C temperature",
		sortkey = 2012,
	},
temp10cn = {
		color = "19c5ff",
		name = "≥ -10C temperature",
		sortkey = 2013,
	},
temp5cn = {
		color = "aedff9",
		name = "≥ -5C temperature",
		sortkey = 2014,
	},
temp0c = {
		color = "009614",
		name = "≥ 0C temperature",
		sortkey = 2015,
	},
temp5c = {
		color = "96df00",
		name = "≥ 5C temperature",
		sortkey = 2016,
	},
temp10c = {
		color = "c5ee03",
		name = "≥ 10C temperature",
		sortkey = 2017,
	},
temp15c = {
		color = "ffff00",
		name = "≥ 15C temperature",
		sortkey = 2018,
	},
temp20c = {
		color = "ffc502",
		name = "≥ 20C temperature",
		sortkey = 2019,
	},
temp25c = {
		color = "ff9606",
		name = "≥ 25C temperature",
		sortkey = 2020,
	},
temp30c = {
		color = "FF5500",
		name = "≥ 30C temperature",
		sortkey = 2021,
	},
temp35c = {
		color = "FE1212",
		name = "≥ 35C temperature",
		sortkey = 2022,
	},
temp40c = {
		color = "FE1284",
		name = "≥ 40C temperature",
		sortkey = 2023,
	},
temp45c = {
		color = "FF7BC3",
		name = "≥ 45C temperature",
		sortkey = 2024,
	},
temp50c = {
		color = "FFC1E3",
		name = "≥ 50C temperature",
		sortkey = 2025,
	},
temp55c = {
		color = "FFD6ED",
		name = "≥ 55C temperature",
		sortkey = 2026,
	},
windchillb100fn = {
		color = "B7698E",
		name = "≤ -100F wind chill",
		sortkey = 2100,
	},
windchill100fn = {
		color = "CB83A5",
		name = "≥ -100F wind chill",
		sortkey = 2101,
	},
windchill90fn = {
		color = "DCAAC2",
		name = "≥ -90F wind chill",
		sortkey = 2102,
	},
windchill80fn = {
		color = "FAD6EB",
		name = "≥ -80F wind chill",
		sortkey = 2103,
	},
windchill70fn = {
		color = "868686",
		name = "≥ -70F wind chill",
		sortkey = 2104,
	},
windchill60fn = {
		color = "BEBEBE",
		name = "≥ -60F wind chill",
		sortkey = 2105,
	},
windchill50fn = {
		color = "DCDCDC",
		name = "≥ -50F wind chill",
		sortkey = 2106,
	},
windchill40fn = {
		color = "FFFFFF",
		name = "≥ -40F wind chill",
		sortkey = 2107,
	},
windchill30fn = {
		color = "FEE9FF",
		name = "≥ -30F wind chill",
		sortkey = 2108,
	},
windchill20fn = {
		color = "CEA8E7",
		name = "≥ -20F wind chill",
		sortkey = 2109,
	},
windchill10fn = {
		color = "9F6FD2",
		name = "≥ -10F wind chill",
		sortkey = 2110,
	},
windchill0f = {
		color = "716EEE",
		name = "≥ 0F wind chill",
		sortkey = 2111,
	},
windchill10f = {
		color = "1e96f8",
		name = "≥ 10F wind chill",
		sortkey = 2112,
	},
windchill20f = {
		color = "19c5ff",
		name = "≥ 20F wind chill",
		sortkey = 2113,
	},
windchill30f = {
		color = "aedff9",
		name = "≥ 30F wind chill",
		sortkey = 2114,
	},
windchill40f = {
		color = "009614",
		name = "≥ 40F wind chill",
		sortkey = 2115,
	},
windchill50f = {
		color = "96df00",
		name = "≥ 50F wind chill",
		sortkey = 2116,
	},
windchill60f = {
		color = "c5ee03",
		name = "≥ 60F wind chill",
		sortkey = 2117,
	},
heatindex30fb = {
		color = "aedff9",
		name = "< 30F heat index",
		sortkey = 2200,
	},
heatindex30f = {
		color = "009614",
		name = "≥ 30F heat index",
		sortkey = 2201,
	},
heatindex40f = {
		color = "96df00",
		name = "≥ 40F heat index",
		sortkey = 2202,
	},
heatindex50f = {
		color = "c5ee03",
		name = "≥ 50F heat index",
		sortkey = 2203,
	},
heatindex60f = {
		color = "ffff00",
		name = "≥ 60F heat index",
		sortkey = 2204,
	},
heatindex70f = {
		color = "ffc502",
		name = "≥ 70F heat index",
		sortkey = 2205,
	},
heatindex80f = {
		color = "ff9606",
		name = "≥ 80F heat index",
		sortkey = 2206,
	},
heatindex90f = {
		color = "FF5500",
		name = "≥ 90F heat index",
		sortkey = 2207,
	},
heatindex100f = {
		color = "FE1212",
		name = "≥ 100F heat index",
		sortkey = 2208,
	},
heatindex110f = {
		color = "FE1284",
		name = "≥ 110F heat index",
		sortkey = 2209,
	},
heatindex120f = {
		color = "FF7BC3",
		name = "≥ 120F heat index",
		sortkey = 2210,
	},
heatindex130f = {
		color = "FFC1E3",
		name = "≥ 130F heat index",
		sortkey = 2211,
	},
heatindex140f = {
		color = "FFD6ED",
		name = "≥ 140F heat index",
		sortkey = 2212,
	},
heatindex150f = {
		color = "FFEDF7",
		name = "≥ 150F heat index",
		sortkey = 2214,
	},
heatindex160f = {
		color = "FFFFFF",
		name = "≥ 160F heat index",
		sortkey = 2215,
	},
frostbite5 = {
		color = "A188FC",
		name = "US: Frostbite 5 mins",
		sortkey = 83010,
	},
frostbite10 = {
		color = "FF738A",
		name = "US: Frostbite 10 mins",
		sortkey = 83011,
	},
frostbite30 = {
		color = "FFD98C",
		name = "US: Frostbite 30 mins",
		sortkey = 83012,
	},
frostbiten = {
		color = "FFFFD9",
		name = "US: Frostbite more than 30 mins/not possible",
		sortkey = 83013,
	},
windchilllow = {
		color = "4DFFFF",
		name = "Canada: low windchill risk",
		sortkey = 83020,
	},
windchillmoderate = {
		color = "FFFFD9",
		name = "Canada: moderate windchill risk",
		sortkey = 83021,
	},
windchillhigh = {
		color = "FFD98C",
		name = "Canada: high windchill risk",
		sortkey = 83022,
	},
windchillveryhigh = {
		color = "FF9E59",
		name = "Canada: very high windchill risk",
		sortkey = 83023,
	},
windchillsevere = {
		color = "FF738A",
		name = "Canada: severe windchill risk",
		sortkey = 83024,
	},
windchillextreme = {
		color = "A188FC",
		name = "Canada: extreme windchill risk",
		sortkey = 83025,
	},
-- ENSO
enson = {
		color = "ACACAC",
		name = "ENSO Neutral",
		sortkey = 200,
	},
ensowen = {
		color = "C18881",
		name = "ENSO Weak El Nino",
		sortkey = 201,
	},
ensomen = {
		color = "D46356",
		name = "ENSO Moderate El Nino",
		sortkey = 202,
	},
ensosen = {
		color = "E73E2B",
		name = "ENSO Strong El Nino",
		sortkey = 203,
	},
ensovsen = {
		color = "FA1900",
		name = "ENSO Very Strong El Nino",
		sortkey = 204,
	},
ensosln = {
		color = "0082E6",
		name = "ENSO Strong La Nina",
		sortkey = 205,
	},
ensomln = {
		color = "3A90D2",
		name = "ENSO Moderate La Nina",
		sortkey = 206,
	},
ensowln = {
		color = "739EBF",
		name = "ENSO Weak La Nina",
		sortkey = 207,
	},
-- WPC/SPC Risk categories
tstm = {
		color = "A9FEC4",
		name = "T-storm",
		sortkey = 84000,
	icon = "30px"
	},
mrglr = {
		color = "1BC800",
		name = "Marginal Risk",
		sortkey = 84001,
	icon = "30px"
	},
slgtr = {
		color = "FFD98C",
		name = "Slight Risk",
		sortkey = 84002,
	icon = "30px"
	},
enhr = {
		color = "FF9E59",
		name = "Enhanced Risk",
		sortkey = 84003,
	icon = "30px"
	},
mdtr = {
		color = "FF738A",
		name = "Moderate Risk",
		sortkey = 84004,
	icon = "30px"
	},
highr = {
		color = "A188FC",
		name = "High Risk",
		sortkey = 84005,
	icon = "30px"
	},
elevatedr = {
		color = "FF9E59",
		name = "Elevated Risk",
		sortkey = 84100,
		icon = "35px"
	},
criticalr = {
		color = "FF738A",
		name = "Critical Risk",
		sortkey = 84101,
		icon = "35px"
	},
extremer = {
		color = "A188FC",
		name = "Extreme risk",
		sortkey = 84102,
		icon = "35px"
	}
}
-- Define aliases
-- All non-alphanumeric characters are already stripped, and the string is
-- already set to lowercase, so additional aliases for those are no longer
-- required.
cats"rsinuisance" = cats"rsi0"
cats"rsinotable" = cats"rsi1"
cats"rsiminor" = cats"rsi2"
cats"rsimajor" = cats"rsi3"
cats"rsicrippling" = cats"rsi4"
cats"rsiextreme" = cats"rsi5"
cats"rsinuisance" = cats"rsi0"
cats"wssi0" = cats"wssinone"
cats"wssi1" = cats"wssilimited"
cats"wssi2" = cats"wssiminor"
cats"wssi3" = cats"wssimoderate"
cats"wssi4" = cats"wssimajor"
cats"wssi5" = cats"wssiextreme"
cats"sty" = cats"supertyphoon"
cats"nwpsevere" = cats"severe"
cats"strong" = cats"severe"
cats"swiosts" = cats"severe"
cats"sts" = cats"severe"
cats"severets" = cats"severe"
cats"ty" = cats"typhoon"
cats"vstrtyphoon" = cats"vstyphoon"
cats"vsty" = cats"vstyphoon"
cats"vity" = cats"vityphoon"
cats"td" = cats"depression"
cats"ts" = cats"storm"
cats"nwpstorm" = cats"storm"
cats"d" = cats"depression"
cats"overlanddepression" = cats"overland"
cats"od" = cats"overland"
cats"spdepression" = cats"depression"
cats"shdepression" = cats"depression"
cats"shemdepression" = cats"depression"
cats"swiodepression" = cats"depression"
cats"spdepression" = cats"depression"
cats"nwpdepression" = cats"depression"
cats"swsubdep" = cats"subdepression"
cats"sd" = cats"subdepression"
cats"ss" = cats"subtropical"
cats"et" = cats"extratropical"
cats"ex" = cats"extratropical"
cats"md" = cats"monsoondepression"
cats"pt" = cats"potential"
cats"potentialtropicalcyclone" = cats"potential"
cats"potentialtropicalcyclone" = cats"potential"
cats"post" = cats"posttropical"
cats"remnantlow" = cats"remnant"
cats"rl" = cats"remnant"
cats"sucs" = cats"sprcyclstorm"
cats"escs" = cats"esvrcyclstorm"
cats"vscs" = cats"vsvrcyclstorm"
cats"scs" = cats"svrcyclstorm"
cats"cs" = cats"niocyclone"
cats"dd" = cats"deepdepression"
cats"cyclstorm" = cats"niocyclone"
cats"landdepression" = cats"nioland"
cats"land" = cats"nioland"
cats"ld" = cats"nioland"
cats"fiji5" = cats"aus5"
cats"fiji4" = cats"aus4"
cats"fiji3" = cats"aus3"
cats"fiji2" = cats"aus2"
cats"fiji1" = cats"aus1"
cats"tl" = cats"low"
cats"di" = cats"disturbance"
cats"swiodisturbance" = cats"disturbance"
cats"tdist" = cats"disturbance"
cats"mts" = cats"mstorm"
cats"sub" = cats"mstorm"
cats"vitc" = cats"vintense"
cats"itc" = cats"intense"
cats"tc" = cats"tropicalcyclone"
cats"swiotc" = cats"tropicalcyclone"
cats"shem3" = cats"tropicalcyclone"
cats"shemtc" = cats"tropicalcyclone"
cats"f12" = cats"beaufort12"
cats"f11" = cats"beaufort11"
cats"f10" = cats"beaufort10"
cats"f9" = cats"beaufort9"
cats"f8" = cats"beaufort8"
cats"f7" = cats"beaufort7"
cats"f6" = cats"beaufort6"
cats"f5" = cats"beaufort5"
cats"f4" = cats"beaufort4"
cats"f3" = cats"beaufort3"
cats"f2" = cats"beaufort2"
cats"f1" = cats"beaufort1"
cats"f0" = cats"beaufort0"
cats"d0" = cats"drought0"
cats"d1" = cats"drought1"
cats"d2" = cats"drought2"
cats"d3" = cats"drought3"
cats"d4" = cats"drought4"
cats"p1" = cats"palmer1"
cats"p2" = cats"palmer2"
cats"p3" = cats"palmer3"
cats"p4" = cats"palmer4"
cats"p5" = cats"palmer5"
cats"p6" = cats"palmer6"
cats"p7" = cats"palmer7"
cats"r1" = cats"radio1"
cats"r2" = cats"radio2"
cats"r3" = cats"radio3"
cats"r4" = cats"radio4"
cats"r5" = cats"radio5"
cats"s1" = cats"solar1"
cats"s2" = cats"solar2"
cats"s3" = cats"solar3"
cats"s4" = cats"solar4"
cats"s5" = cats"solar5"
cats"g1" = cats"geo1"
cats"g2" = cats"geo2"
cats"g3" = cats"geo3"
cats"g4" = cats"geo4"
cats"g5" = cats"geo5"
cats"h1" = cats"heat1"
cats"h2" = cats"heat2"
cats"h3" = cats"heat3"
cats"h4" = cats"heat4"
cats"hw" = cats"heatw"
cats"thunderstorm" = cats"tstm"
cats"tstorm" = cats"tstm"
cats"slightrisk" = cats"slgtr"
cats"marginalrisk" = cats"mrglr"
cats"moderaterisk" = cats"mdtr"
cats"highrisk" = cats"highr"
cats"enhancedrisk" = cats"enhr"
cats"elevatedrisk" = cats"elevatedr"
cats"extremerisk" = cats"extremer"
cats"criticalrisk" = cats"criticalr"
cats"redflag0" = cats"redflagnil"
cats"redflag1" = cats"redflagelv"
cats"redflag3" = cats"redflagcrl"
cats"redflag5" = cats"redflagcrh"
cats"redflag7" = cats"redflagecr"
cats"redflag9" = cats"redflaghcr"
cats"rfti0" = cats"redflagnil"
cats"rfti1" = cats"redflagelv"
cats"rfti3" = cats"redflagcrl"
cats"rfti5" = cats"redflagcrh"
cats"rfti7" = cats"redflagecr"
cats"rfti9" = cats"redflaghcr"
cats"torrou" = cats"tu"
cats"torro0" = cats"t0"
cats"torro1" = cats"t1"
cats"torro2" = cats"t2"
cats"torro3" = cats"t3"
cats"torro4" = cats"t4"
cats"torro5" = cats"t5"
cats"torro6" = cats"t6"
cats"torro7" = cats"t7"
cats"torro8" = cats"t8"
cats"torro9" = cats"t9"
cats"torro10" = cats"t10"
cats"torro11" = cats"t11"
cats"funnelcloud" = cats"fc"
cats"ice0" = cats"spia0"
cats"ice1" = cats"spia1"
cats"ice2" = cats"spia2"
cats"ice3" = cats"spia3"
cats"ice4" = cats"spia4"
cats"ice5" = cats"spia5"
-- Key standardization check
for k, v in pairs(cats) do
	if k ~= mw.ustring.gsub(k, "^%w", "") then
		mw.addWarning(
			"Category \""
			.. k
			.. "\" in Module:Storm categories/categories is defined with a non-alphanumeric key. "
			.. "This key will likely be unusable unless non-alphanumeric characters are removed."
		)
	end
end
p.defaultCategory = "unknown"
p.cats = cats
return p