diff --git a/crates/oxide_builtins/src/temporal/mod.rs b/crates/oxide_builtins/src/temporal/mod.rs index 03174e7e..efcb7b3a 100644 --- a/crates/oxide_builtins/src/temporal/mod.rs +++ b/crates/oxide_builtins/src/temporal/mod.rs @@ -7,6 +7,7 @@ mod plain_date_time; mod plain_month_day; mod plain_time; mod plain_year_month; +mod time_zone; mod zoned_date_time; use common::*; diff --git a/crates/oxide_builtins/src/temporal/time_zone.rs b/crates/oxide_builtins/src/temporal/time_zone.rs new file mode 100644 index 00000000..fcfc9ceb --- /dev/null +++ b/crates/oxide_builtins/src/temporal/time_zone.rs @@ -0,0 +1,1299 @@ +//! 时区数据源与 TZif 解析器:IANA tzdata 2026b 全量树 vendored 于 `third_party/tzdb/`, +//! 引擎内置 legacy 别名表,不读宿主系统 zoneinfo。 +//! +//! 关键约定: +//! - 数据版本钉住 tzdata 2026b,全量树随仓库,保证各环境逐字节一致;legacy 区名 +//! (2026b 已移除)由引擎内 `LEGACY_ALIASES` 表解析,独立于数据版本。 +//! - 偏移一律以秒存(i32),保亚分钟精度(LMT、Lord Howe 半小时 DST 等); +//! `transitions` 按纪元秒严格升序,最后一次 transition 之后的偏移预存于 `last_offset`。 +//! - 闰秒不建模:闰秒表只用于推进解析指针,Temporal 时间线为连续纳秒轴。 +//! - 刷新程序:从宿主 /usr/share/zoneinfo 以 `cp -rL` 复制 11 个区域目录加顶层区文件 +//! (排除机器相关的 localtime 与源文件 tzdata.zi / leap-seconds.list),并更新本 +//! 注释的版本行。 + +use std::sync::LazyLock; + +/// 单个时区的解析结果:transition 表加偏移查找所需的预存值。 +/// +/// `transitions` 为 `(纪元秒, 该时刻起生效的偏移秒)`,按纪元秒严格升序; +/// 早于首个 transition 的偏移取 `lmt_offset`(首个 time type,即 LMT), +/// 晚于末个 transition 的偏移取 `last_offset`(POSIX TZ 串语义,与末次 transition 一致)。 +pub(crate) struct TzifZone { + lmt_offset: i32, + transitions: Vec<(i64, i32)>, + last_offset: i32, +} + +/// TZif 解析失败原因。 +#[derive(Debug)] +pub(crate) enum TzifError { + /// 文件在声明的块边界前截断。 + Truncated, + /// 魔数不是 `TZif`。 + BadMagic, + /// 版本字节不是 0 / 2 / 3 / 4。 + BadVersion, +} + +/// TZif 头的 6 个计数字段(isutcnt / isstdcnt / leapcnt / timecnt / typecnt / charcnt)。 +#[derive(Clone, Copy)] +struct Counts { + isutcnt: u32, + isstdcnt: u32, + leapcnt: u32, + timecnt: u32, + typecnt: u32, + charcnt: u32, +} + +/// 单个数据块的解析结果:transition 时间、transition 类型索引、本地时间类型偏移。 +struct ParsedBlock { + trans: Vec, + ttypes: Vec, + types: Vec, +} + +/// 读 44 字节头的 6 个计数字段。 +/// +/// # 边界与前提 +/// - 调用方须保证 `off + 44` 不越界(本函数自行校验)。 +/// +/// # 注意事项 +/// - 计数字段从偏移 20 起(magic 4 + version 1 + 保留 15)。 +fn read_counts(bytes: &[u8], off: usize) -> Result { + if bytes.len() < off + 44 { + return Err(TzifError::Truncated); + } + let d = |i: usize| u32::from_be_bytes(bytes[off + 20 + i * 4..off + 24 + i * 4].try_into().unwrap()); + Ok(Counts { + isutcnt: d(0), + isstdcnt: d(1), + leapcnt: d(2), + timecnt: d(3), + typecnt: d(4), + charcnt: d(5), + }) +} + +/// 数据块总字节数(transition 时间 + 类型 + 本地时间类型记录 + 区名 + 闰秒 + 指示位)。 +fn block_size(c: &Counts, time_size: usize) -> usize { + c.timecnt as usize * time_size + + c.timecnt as usize + + c.typecnt as usize * 6 + + c.charcnt as usize + + c.leapcnt as usize * (time_size + 4) + + c.isstdcnt as usize + + c.isutcnt as usize +} + +/// 读一个数据块:transition 时间、transition 类型索引、本地时间类型偏移。 +/// +/// # 边界与前提 +/// - 调用方须保证块完整(本函数按 `block_size` 校验总长)。 +/// - `time_size` 为 4(v1)或 8(v2+)。 +/// +/// # 注意事项 +/// - transition 类型索引越界(超出 typecnt)视为截断,防越界读。 +fn read_block(bytes: &[u8], off: usize, c: &Counts, time_size: usize) -> Result { + let need = off + block_size(c, time_size); + if bytes.len() < need { + return Err(TzifError::Truncated); + } + let mut p = off; + + // transition 时间(有符号,v1 为 32 位、v2+ 为 64 位)。 + let mut trans = Vec::with_capacity(c.timecnt as usize); + for _ in 0..c.timecnt { + let v = if time_size == 8 { + i64::from_be_bytes(bytes[p..p + 8].try_into().unwrap()) + } else { + i32::from_be_bytes(bytes[p..p + 4].try_into().unwrap()) as i64 + }; + trans.push(v); + p += time_size; + } + + // transition 类型索引(每 transition 一字节)。 + let ttypes = bytes[p..p + c.timecnt as usize].to_vec(); + p += c.timecnt as usize; + + // 本地时间类型记录(6 字节:utoff 4 + isdst 1 + idx 1),只取 utoff。 + let mut types = Vec::with_capacity(c.typecnt as usize); + for _ in 0..c.typecnt { + let utoff = i32::from_be_bytes(bytes[p..p + 4].try_into().unwrap()); + types.push(utoff); + p += 6; + } + + for &idx in &ttypes { + if idx >= c.typecnt as u8 { + return Err(TzifError::Truncated); + } + } + Ok(ParsedBlock { trans, ttypes, types }) +} + +/// 解析 TZif 二进制为 `TzifZone`。 +/// +/// # 步骤 +/// 1. 校验魔数与版本字节。 +/// 2. 读 v1 头;版本 ≥ 2 时跳过 v1 块、读 v2+ 头,一律用 64 位块(1970 年前 +/// transition 为负值自然容纳);版本 1 用 32 位块。 +/// 3. 由 transition 类型索引与本地时间类型记录组装 `(纪元秒, 偏移秒)` 表; +/// LMT 取首个 time type,末偏移取末次 transition 的偏移。 +/// +/// # 边界与前提 +/// - 闰秒表按 `leapcnt * (time_size + 4)` 推进指针,不建模。 +/// - POSIX TZ 串(footer)读出后丢弃:末偏移已由末次 transition 给出。 +/// +/// # 注意事项 +/// - 纯解析,无副作用;调用方负责把结果挂到静态表。 +pub(crate) fn parse_tzif(bytes: &[u8]) -> Result { + if bytes.len() < 44 { + return Err(TzifError::Truncated); + } + if &bytes[0..4] != b"TZif" { + return Err(TzifError::BadMagic); + } + let version = bytes[4]; + if !matches!(version, 0 | b'2' | b'3' | b'4') { + return Err(TzifError::BadVersion); + } + + // v1 头计数(版本 ≥ 2 时 v1 块是占位,只用于算跳过长度)。 + let c1 = read_counts(bytes, 0)?; + + let block = if version >= b'2' { + let v1_size = block_size(&c1, 4); + let off = 44 + v1_size; + if bytes.len() < off + 44 { + return Err(TzifError::Truncated); + } + if &bytes[off..off + 4] != b"TZif" { + return Err(TzifError::BadMagic); + } + let c2 = read_counts(bytes, off)?; + read_block(bytes, off + 44, &c2, 8)? + } else { + read_block(bytes, 44, &c1, 4)? + }; + + // LMT 是首个 time type 的偏移;末偏移取末次 transition 的偏移(POSIX TZ 串语义)。 + let lmt_offset = block.types.first().copied().unwrap_or(0); + let transitions: Vec<(i64, i32)> = block + .trans + .iter() + .enumerate() + .map(|(i, &t)| (t, block.types[block.ttypes[i] as usize])) + .collect(); + let last_offset = transitions.last().map(|&(_, o)| o).unwrap_or(lmt_offset); + Ok(TzifZone { + lmt_offset, + transitions, + last_offset, + }) +} + +const ZONE_FILES: &[(&str, &[u8])] = &[ + ("Africa/Abidjan", include_bytes!("../../../../third_party/tzdb/Africa/Abidjan")), + ("Africa/Accra", include_bytes!("../../../../third_party/tzdb/Africa/Accra")), + ("Africa/Addis_Ababa", include_bytes!("../../../../third_party/tzdb/Africa/Addis_Ababa")), + ("Africa/Algiers", include_bytes!("../../../../third_party/tzdb/Africa/Algiers")), + ("Africa/Asmara", include_bytes!("../../../../third_party/tzdb/Africa/Asmara")), + ("Africa/Bamako", include_bytes!("../../../../third_party/tzdb/Africa/Bamako")), + ("Africa/Bangui", include_bytes!("../../../../third_party/tzdb/Africa/Bangui")), + ("Africa/Banjul", include_bytes!("../../../../third_party/tzdb/Africa/Banjul")), + ("Africa/Bissau", include_bytes!("../../../../third_party/tzdb/Africa/Bissau")), + ("Africa/Blantyre", include_bytes!("../../../../third_party/tzdb/Africa/Blantyre")), + ("Africa/Brazzaville", include_bytes!("../../../../third_party/tzdb/Africa/Brazzaville")), + ("Africa/Bujumbura", include_bytes!("../../../../third_party/tzdb/Africa/Bujumbura")), + ("Africa/Cairo", include_bytes!("../../../../third_party/tzdb/Africa/Cairo")), + ("Africa/Casablanca", include_bytes!("../../../../third_party/tzdb/Africa/Casablanca")), + ("Africa/Ceuta", include_bytes!("../../../../third_party/tzdb/Africa/Ceuta")), + ("Africa/Conakry", include_bytes!("../../../../third_party/tzdb/Africa/Conakry")), + ("Africa/Dakar", include_bytes!("../../../../third_party/tzdb/Africa/Dakar")), + ( + "Africa/Dar_es_Salaam", + include_bytes!("../../../../third_party/tzdb/Africa/Dar_es_Salaam"), + ), + ("Africa/Djibouti", include_bytes!("../../../../third_party/tzdb/Africa/Djibouti")), + ("Africa/Douala", include_bytes!("../../../../third_party/tzdb/Africa/Douala")), + ("Africa/El_Aaiun", include_bytes!("../../../../third_party/tzdb/Africa/El_Aaiun")), + ("Africa/Freetown", include_bytes!("../../../../third_party/tzdb/Africa/Freetown")), + ("Africa/Gaborone", include_bytes!("../../../../third_party/tzdb/Africa/Gaborone")), + ("Africa/Harare", include_bytes!("../../../../third_party/tzdb/Africa/Harare")), + ("Africa/Johannesburg", include_bytes!("../../../../third_party/tzdb/Africa/Johannesburg")), + ("Africa/Juba", include_bytes!("../../../../third_party/tzdb/Africa/Juba")), + ("Africa/Kampala", include_bytes!("../../../../third_party/tzdb/Africa/Kampala")), + ("Africa/Khartoum", include_bytes!("../../../../third_party/tzdb/Africa/Khartoum")), + ("Africa/Kigali", include_bytes!("../../../../third_party/tzdb/Africa/Kigali")), + ("Africa/Kinshasa", include_bytes!("../../../../third_party/tzdb/Africa/Kinshasa")), + ("Africa/Lagos", include_bytes!("../../../../third_party/tzdb/Africa/Lagos")), + ("Africa/Libreville", include_bytes!("../../../../third_party/tzdb/Africa/Libreville")), + ("Africa/Lome", include_bytes!("../../../../third_party/tzdb/Africa/Lome")), + ("Africa/Luanda", include_bytes!("../../../../third_party/tzdb/Africa/Luanda")), + ("Africa/Lubumbashi", include_bytes!("../../../../third_party/tzdb/Africa/Lubumbashi")), + ("Africa/Lusaka", include_bytes!("../../../../third_party/tzdb/Africa/Lusaka")), + ("Africa/Malabo", include_bytes!("../../../../third_party/tzdb/Africa/Malabo")), + ("Africa/Maputo", include_bytes!("../../../../third_party/tzdb/Africa/Maputo")), + ("Africa/Maseru", include_bytes!("../../../../third_party/tzdb/Africa/Maseru")), + ("Africa/Mbabane", include_bytes!("../../../../third_party/tzdb/Africa/Mbabane")), + ("Africa/Mogadishu", include_bytes!("../../../../third_party/tzdb/Africa/Mogadishu")), + ("Africa/Monrovia", include_bytes!("../../../../third_party/tzdb/Africa/Monrovia")), + ("Africa/Nairobi", include_bytes!("../../../../third_party/tzdb/Africa/Nairobi")), + ("Africa/Ndjamena", include_bytes!("../../../../third_party/tzdb/Africa/Ndjamena")), + ("Africa/Niamey", include_bytes!("../../../../third_party/tzdb/Africa/Niamey")), + ("Africa/Nouakchott", include_bytes!("../../../../third_party/tzdb/Africa/Nouakchott")), + ("Africa/Ouagadougou", include_bytes!("../../../../third_party/tzdb/Africa/Ouagadougou")), + ("Africa/Porto-Novo", include_bytes!("../../../../third_party/tzdb/Africa/Porto-Novo")), + ("Africa/Sao_Tome", include_bytes!("../../../../third_party/tzdb/Africa/Sao_Tome")), + ("Africa/Timbuktu", include_bytes!("../../../../third_party/tzdb/Africa/Timbuktu")), + ("Africa/Tripoli", include_bytes!("../../../../third_party/tzdb/Africa/Tripoli")), + ("Africa/Tunis", include_bytes!("../../../../third_party/tzdb/Africa/Tunis")), + ("Africa/Windhoek", include_bytes!("../../../../third_party/tzdb/Africa/Windhoek")), + ("America/Adak", include_bytes!("../../../../third_party/tzdb/America/Adak")), + ("America/Anchorage", include_bytes!("../../../../third_party/tzdb/America/Anchorage")), + ("America/Anguilla", include_bytes!("../../../../third_party/tzdb/America/Anguilla")), + ("America/Antigua", include_bytes!("../../../../third_party/tzdb/America/Antigua")), + ("America/Araguaina", include_bytes!("../../../../third_party/tzdb/America/Araguaina")), + ( + "America/Argentina/Buenos_Aires", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Buenos_Aires"), + ), + ( + "America/Argentina/Catamarca", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Catamarca"), + ), + ( + "America/Argentina/Cordoba", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Cordoba"), + ), + ( + "America/Argentina/Jujuy", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Jujuy"), + ), + ( + "America/Argentina/La_Rioja", + include_bytes!("../../../../third_party/tzdb/America/Argentina/La_Rioja"), + ), + ( + "America/Argentina/Mendoza", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Mendoza"), + ), + ( + "America/Argentina/Rio_Gallegos", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Rio_Gallegos"), + ), + ( + "America/Argentina/Salta", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Salta"), + ), + ( + "America/Argentina/San_Juan", + include_bytes!("../../../../third_party/tzdb/America/Argentina/San_Juan"), + ), + ( + "America/Argentina/San_Luis", + include_bytes!("../../../../third_party/tzdb/America/Argentina/San_Luis"), + ), + ( + "America/Argentina/Tucuman", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Tucuman"), + ), + ( + "America/Argentina/Ushuaia", + include_bytes!("../../../../third_party/tzdb/America/Argentina/Ushuaia"), + ), + ("America/Aruba", include_bytes!("../../../../third_party/tzdb/America/Aruba")), + ("America/Asuncion", include_bytes!("../../../../third_party/tzdb/America/Asuncion")), + ("America/Atikokan", include_bytes!("../../../../third_party/tzdb/America/Atikokan")), + ("America/Atka", include_bytes!("../../../../third_party/tzdb/America/Atka")), + ("America/Bahia", include_bytes!("../../../../third_party/tzdb/America/Bahia")), + ( + "America/Bahia_Banderas", + include_bytes!("../../../../third_party/tzdb/America/Bahia_Banderas"), + ), + ("America/Barbados", include_bytes!("../../../../third_party/tzdb/America/Barbados")), + ("America/Belem", include_bytes!("../../../../third_party/tzdb/America/Belem")), + ("America/Belize", include_bytes!("../../../../third_party/tzdb/America/Belize")), + ( + "America/Blanc-Sablon", + include_bytes!("../../../../third_party/tzdb/America/Blanc-Sablon"), + ), + ("America/Boa_Vista", include_bytes!("../../../../third_party/tzdb/America/Boa_Vista")), + ("America/Bogota", include_bytes!("../../../../third_party/tzdb/America/Bogota")), + ("America/Boise", include_bytes!("../../../../third_party/tzdb/America/Boise")), + ( + "America/Cambridge_Bay", + include_bytes!("../../../../third_party/tzdb/America/Cambridge_Bay"), + ), + ( + "America/Campo_Grande", + include_bytes!("../../../../third_party/tzdb/America/Campo_Grande"), + ), + ("America/Cancun", include_bytes!("../../../../third_party/tzdb/America/Cancun")), + ("America/Caracas", include_bytes!("../../../../third_party/tzdb/America/Caracas")), + ("America/Cayenne", include_bytes!("../../../../third_party/tzdb/America/Cayenne")), + ("America/Cayman", include_bytes!("../../../../third_party/tzdb/America/Cayman")), + ("America/Chicago", include_bytes!("../../../../third_party/tzdb/America/Chicago")), + ("America/Chihuahua", include_bytes!("../../../../third_party/tzdb/America/Chihuahua")), + ( + "America/Ciudad_Juarez", + include_bytes!("../../../../third_party/tzdb/America/Ciudad_Juarez"), + ), + ( + "America/Coral_Harbour", + include_bytes!("../../../../third_party/tzdb/America/Coral_Harbour"), + ), + ("America/Costa_Rica", include_bytes!("../../../../third_party/tzdb/America/Costa_Rica")), + ("America/Coyhaique", include_bytes!("../../../../third_party/tzdb/America/Coyhaique")), + ("America/Creston", include_bytes!("../../../../third_party/tzdb/America/Creston")), + ("America/Cuiaba", include_bytes!("../../../../third_party/tzdb/America/Cuiaba")), + ("America/Curacao", include_bytes!("../../../../third_party/tzdb/America/Curacao")), + ( + "America/Danmarkshavn", + include_bytes!("../../../../third_party/tzdb/America/Danmarkshavn"), + ), + ("America/Dawson", include_bytes!("../../../../third_party/tzdb/America/Dawson")), + ( + "America/Dawson_Creek", + include_bytes!("../../../../third_party/tzdb/America/Dawson_Creek"), + ), + ("America/Denver", include_bytes!("../../../../third_party/tzdb/America/Denver")), + ("America/Detroit", include_bytes!("../../../../third_party/tzdb/America/Detroit")), + ("America/Dominica", include_bytes!("../../../../third_party/tzdb/America/Dominica")), + ("America/Edmonton", include_bytes!("../../../../third_party/tzdb/America/Edmonton")), + ("America/Eirunepe", include_bytes!("../../../../third_party/tzdb/America/Eirunepe")), + ("America/El_Salvador", include_bytes!("../../../../third_party/tzdb/America/El_Salvador")), + ("America/Ensenada", include_bytes!("../../../../third_party/tzdb/America/Ensenada")), + ("America/Fort_Nelson", include_bytes!("../../../../third_party/tzdb/America/Fort_Nelson")), + ("America/Fortaleza", include_bytes!("../../../../third_party/tzdb/America/Fortaleza")), + ("America/Glace_Bay", include_bytes!("../../../../third_party/tzdb/America/Glace_Bay")), + ("America/Goose_Bay", include_bytes!("../../../../third_party/tzdb/America/Goose_Bay")), + ("America/Grand_Turk", include_bytes!("../../../../third_party/tzdb/America/Grand_Turk")), + ("America/Grenada", include_bytes!("../../../../third_party/tzdb/America/Grenada")), + ("America/Guadeloupe", include_bytes!("../../../../third_party/tzdb/America/Guadeloupe")), + ("America/Guatemala", include_bytes!("../../../../third_party/tzdb/America/Guatemala")), + ("America/Guayaquil", include_bytes!("../../../../third_party/tzdb/America/Guayaquil")), + ("America/Guyana", include_bytes!("../../../../third_party/tzdb/America/Guyana")), + ("America/Halifax", include_bytes!("../../../../third_party/tzdb/America/Halifax")), + ("America/Havana", include_bytes!("../../../../third_party/tzdb/America/Havana")), + ("America/Hermosillo", include_bytes!("../../../../third_party/tzdb/America/Hermosillo")), + ( + "America/Indiana/Indianapolis", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Indianapolis"), + ), + ( + "America/Indiana/Knox", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Knox"), + ), + ( + "America/Indiana/Marengo", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Marengo"), + ), + ( + "America/Indiana/Petersburg", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Petersburg"), + ), + ( + "America/Indiana/Tell_City", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Tell_City"), + ), + ( + "America/Indiana/Vevay", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Vevay"), + ), + ( + "America/Indiana/Vincennes", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Vincennes"), + ), + ( + "America/Indiana/Winamac", + include_bytes!("../../../../third_party/tzdb/America/Indiana/Winamac"), + ), + ("America/Inuvik", include_bytes!("../../../../third_party/tzdb/America/Inuvik")), + ("America/Iqaluit", include_bytes!("../../../../third_party/tzdb/America/Iqaluit")), + ("America/Jamaica", include_bytes!("../../../../third_party/tzdb/America/Jamaica")), + ("America/Juneau", include_bytes!("../../../../third_party/tzdb/America/Juneau")), + ( + "America/Kentucky/Louisville", + include_bytes!("../../../../third_party/tzdb/America/Kentucky/Louisville"), + ), + ( + "America/Kentucky/Monticello", + include_bytes!("../../../../third_party/tzdb/America/Kentucky/Monticello"), + ), + ("America/Kralendijk", include_bytes!("../../../../third_party/tzdb/America/Kralendijk")), + ("America/La_Paz", include_bytes!("../../../../third_party/tzdb/America/La_Paz")), + ("America/Lima", include_bytes!("../../../../third_party/tzdb/America/Lima")), + ("America/Los_Angeles", include_bytes!("../../../../third_party/tzdb/America/Los_Angeles")), + ( + "America/Lower_Princes", + include_bytes!("../../../../third_party/tzdb/America/Lower_Princes"), + ), + ("America/Maceio", include_bytes!("../../../../third_party/tzdb/America/Maceio")), + ("America/Managua", include_bytes!("../../../../third_party/tzdb/America/Managua")), + ("America/Manaus", include_bytes!("../../../../third_party/tzdb/America/Manaus")), + ("America/Marigot", include_bytes!("../../../../third_party/tzdb/America/Marigot")), + ("America/Martinique", include_bytes!("../../../../third_party/tzdb/America/Martinique")), + ("America/Matamoros", include_bytes!("../../../../third_party/tzdb/America/Matamoros")), + ("America/Mazatlan", include_bytes!("../../../../third_party/tzdb/America/Mazatlan")), + ("America/Menominee", include_bytes!("../../../../third_party/tzdb/America/Menominee")), + ("America/Merida", include_bytes!("../../../../third_party/tzdb/America/Merida")), + ("America/Metlakatla", include_bytes!("../../../../third_party/tzdb/America/Metlakatla")), + ("America/Mexico_City", include_bytes!("../../../../third_party/tzdb/America/Mexico_City")), + ("America/Miquelon", include_bytes!("../../../../third_party/tzdb/America/Miquelon")), + ("America/Moncton", include_bytes!("../../../../third_party/tzdb/America/Moncton")), + ("America/Monterrey", include_bytes!("../../../../third_party/tzdb/America/Monterrey")), + ("America/Montevideo", include_bytes!("../../../../third_party/tzdb/America/Montevideo")), + ("America/Montreal", include_bytes!("../../../../third_party/tzdb/America/Montreal")), + ("America/Montserrat", include_bytes!("../../../../third_party/tzdb/America/Montserrat")), + ("America/Nassau", include_bytes!("../../../../third_party/tzdb/America/Nassau")), + ("America/New_York", include_bytes!("../../../../third_party/tzdb/America/New_York")), + ("America/Nipigon", include_bytes!("../../../../third_party/tzdb/America/Nipigon")), + ("America/Nome", include_bytes!("../../../../third_party/tzdb/America/Nome")), + ("America/Noronha", include_bytes!("../../../../third_party/tzdb/America/Noronha")), + ( + "America/North_Dakota/Beulah", + include_bytes!("../../../../third_party/tzdb/America/North_Dakota/Beulah"), + ), + ( + "America/North_Dakota/Center", + include_bytes!("../../../../third_party/tzdb/America/North_Dakota/Center"), + ), + ( + "America/North_Dakota/New_Salem", + include_bytes!("../../../../third_party/tzdb/America/North_Dakota/New_Salem"), + ), + ("America/Nuuk", include_bytes!("../../../../third_party/tzdb/America/Nuuk")), + ("America/Ojinaga", include_bytes!("../../../../third_party/tzdb/America/Ojinaga")), + ("America/Panama", include_bytes!("../../../../third_party/tzdb/America/Panama")), + ("America/Pangnirtung", include_bytes!("../../../../third_party/tzdb/America/Pangnirtung")), + ("America/Paramaribo", include_bytes!("../../../../third_party/tzdb/America/Paramaribo")), + ("America/Phoenix", include_bytes!("../../../../third_party/tzdb/America/Phoenix")), + ( + "America/Port-au-Prince", + include_bytes!("../../../../third_party/tzdb/America/Port-au-Prince"), + ), + ( + "America/Port_of_Spain", + include_bytes!("../../../../third_party/tzdb/America/Port_of_Spain"), + ), + ("America/Porto_Acre", include_bytes!("../../../../third_party/tzdb/America/Porto_Acre")), + ("America/Porto_Velho", include_bytes!("../../../../third_party/tzdb/America/Porto_Velho")), + ("America/Puerto_Rico", include_bytes!("../../../../third_party/tzdb/America/Puerto_Rico")), + ( + "America/Punta_Arenas", + include_bytes!("../../../../third_party/tzdb/America/Punta_Arenas"), + ), + ("America/Rainy_River", include_bytes!("../../../../third_party/tzdb/America/Rainy_River")), + ( + "America/Rankin_Inlet", + include_bytes!("../../../../third_party/tzdb/America/Rankin_Inlet"), + ), + ("America/Recife", include_bytes!("../../../../third_party/tzdb/America/Recife")), + ("America/Regina", include_bytes!("../../../../third_party/tzdb/America/Regina")), + ("America/Resolute", include_bytes!("../../../../third_party/tzdb/America/Resolute")), + ("America/Rio_Branco", include_bytes!("../../../../third_party/tzdb/America/Rio_Branco")), + ( + "America/Santa_Isabel", + include_bytes!("../../../../third_party/tzdb/America/Santa_Isabel"), + ), + ("America/Santarem", include_bytes!("../../../../third_party/tzdb/America/Santarem")), + ("America/Santiago", include_bytes!("../../../../third_party/tzdb/America/Santiago")), + ( + "America/Santo_Domingo", + include_bytes!("../../../../third_party/tzdb/America/Santo_Domingo"), + ), + ("America/Sao_Paulo", include_bytes!("../../../../third_party/tzdb/America/Sao_Paulo")), + ( + "America/Scoresbysund", + include_bytes!("../../../../third_party/tzdb/America/Scoresbysund"), + ), + ("America/Shiprock", include_bytes!("../../../../third_party/tzdb/America/Shiprock")), + ("America/Sitka", include_bytes!("../../../../third_party/tzdb/America/Sitka")), + ( + "America/St_Barthelemy", + include_bytes!("../../../../third_party/tzdb/America/St_Barthelemy"), + ), + ("America/St_Johns", include_bytes!("../../../../third_party/tzdb/America/St_Johns")), + ("America/St_Kitts", include_bytes!("../../../../third_party/tzdb/America/St_Kitts")), + ("America/St_Lucia", include_bytes!("../../../../third_party/tzdb/America/St_Lucia")), + ("America/St_Thomas", include_bytes!("../../../../third_party/tzdb/America/St_Thomas")), + ("America/St_Vincent", include_bytes!("../../../../third_party/tzdb/America/St_Vincent")), + ( + "America/Swift_Current", + include_bytes!("../../../../third_party/tzdb/America/Swift_Current"), + ), + ("America/Tegucigalpa", include_bytes!("../../../../third_party/tzdb/America/Tegucigalpa")), + ("America/Thule", include_bytes!("../../../../third_party/tzdb/America/Thule")), + ("America/Thunder_Bay", include_bytes!("../../../../third_party/tzdb/America/Thunder_Bay")), + ("America/Tijuana", include_bytes!("../../../../third_party/tzdb/America/Tijuana")), + ("America/Toronto", include_bytes!("../../../../third_party/tzdb/America/Toronto")), + ("America/Tortola", include_bytes!("../../../../third_party/tzdb/America/Tortola")), + ("America/Vancouver", include_bytes!("../../../../third_party/tzdb/America/Vancouver")), + ("America/Virgin", include_bytes!("../../../../third_party/tzdb/America/Virgin")), + ("America/Whitehorse", include_bytes!("../../../../third_party/tzdb/America/Whitehorse")), + ("America/Winnipeg", include_bytes!("../../../../third_party/tzdb/America/Winnipeg")), + ("America/Yakutat", include_bytes!("../../../../third_party/tzdb/America/Yakutat")), + ("America/Yellowknife", include_bytes!("../../../../third_party/tzdb/America/Yellowknife")), + ("Antarctica/Casey", include_bytes!("../../../../third_party/tzdb/Antarctica/Casey")), + ("Antarctica/Davis", include_bytes!("../../../../third_party/tzdb/Antarctica/Davis")), + ( + "Antarctica/DumontDUrville", + include_bytes!("../../../../third_party/tzdb/Antarctica/DumontDUrville"), + ), + ( + "Antarctica/Macquarie", + include_bytes!("../../../../third_party/tzdb/Antarctica/Macquarie"), + ), + ("Antarctica/Mawson", include_bytes!("../../../../third_party/tzdb/Antarctica/Mawson")), + ("Antarctica/McMurdo", include_bytes!("../../../../third_party/tzdb/Antarctica/McMurdo")), + ("Antarctica/Palmer", include_bytes!("../../../../third_party/tzdb/Antarctica/Palmer")), + ("Antarctica/Rothera", include_bytes!("../../../../third_party/tzdb/Antarctica/Rothera")), + ("Antarctica/Syowa", include_bytes!("../../../../third_party/tzdb/Antarctica/Syowa")), + ("Antarctica/Troll", include_bytes!("../../../../third_party/tzdb/Antarctica/Troll")), + ("Antarctica/Vostok", include_bytes!("../../../../third_party/tzdb/Antarctica/Vostok")), + ("Arctic/Longyearbyen", include_bytes!("../../../../third_party/tzdb/Arctic/Longyearbyen")), + ("Asia/Aden", include_bytes!("../../../../third_party/tzdb/Asia/Aden")), + ("Asia/Almaty", include_bytes!("../../../../third_party/tzdb/Asia/Almaty")), + ("Asia/Amman", include_bytes!("../../../../third_party/tzdb/Asia/Amman")), + ("Asia/Anadyr", include_bytes!("../../../../third_party/tzdb/Asia/Anadyr")), + ("Asia/Aqtau", include_bytes!("../../../../third_party/tzdb/Asia/Aqtau")), + ("Asia/Aqtobe", include_bytes!("../../../../third_party/tzdb/Asia/Aqtobe")), + ("Asia/Ashgabat", include_bytes!("../../../../third_party/tzdb/Asia/Ashgabat")), + ("Asia/Atyrau", include_bytes!("../../../../third_party/tzdb/Asia/Atyrau")), + ("Asia/Baghdad", include_bytes!("../../../../third_party/tzdb/Asia/Baghdad")), + ("Asia/Bahrain", include_bytes!("../../../../third_party/tzdb/Asia/Bahrain")), + ("Asia/Baku", include_bytes!("../../../../third_party/tzdb/Asia/Baku")), + ("Asia/Bangkok", include_bytes!("../../../../third_party/tzdb/Asia/Bangkok")), + ("Asia/Barnaul", include_bytes!("../../../../third_party/tzdb/Asia/Barnaul")), + ("Asia/Beirut", include_bytes!("../../../../third_party/tzdb/Asia/Beirut")), + ("Asia/Bishkek", include_bytes!("../../../../third_party/tzdb/Asia/Bishkek")), + ("Asia/Brunei", include_bytes!("../../../../third_party/tzdb/Asia/Brunei")), + ("Asia/Chita", include_bytes!("../../../../third_party/tzdb/Asia/Chita")), + ("Asia/Chongqing", include_bytes!("../../../../third_party/tzdb/Asia/Chongqing")), + ("Asia/Colombo", include_bytes!("../../../../third_party/tzdb/Asia/Colombo")), + ("Asia/Damascus", include_bytes!("../../../../third_party/tzdb/Asia/Damascus")), + ("Asia/Dhaka", include_bytes!("../../../../third_party/tzdb/Asia/Dhaka")), + ("Asia/Dili", include_bytes!("../../../../third_party/tzdb/Asia/Dili")), + ("Asia/Dubai", include_bytes!("../../../../third_party/tzdb/Asia/Dubai")), + ("Asia/Dushanbe", include_bytes!("../../../../third_party/tzdb/Asia/Dushanbe")), + ("Asia/Famagusta", include_bytes!("../../../../third_party/tzdb/Asia/Famagusta")), + ("Asia/Gaza", include_bytes!("../../../../third_party/tzdb/Asia/Gaza")), + ("Asia/Harbin", include_bytes!("../../../../third_party/tzdb/Asia/Harbin")), + ("Asia/Hebron", include_bytes!("../../../../third_party/tzdb/Asia/Hebron")), + ("Asia/Ho_Chi_Minh", include_bytes!("../../../../third_party/tzdb/Asia/Ho_Chi_Minh")), + ("Asia/Hong_Kong", include_bytes!("../../../../third_party/tzdb/Asia/Hong_Kong")), + ("Asia/Hovd", include_bytes!("../../../../third_party/tzdb/Asia/Hovd")), + ("Asia/Irkutsk", include_bytes!("../../../../third_party/tzdb/Asia/Irkutsk")), + ("Asia/Istanbul", include_bytes!("../../../../third_party/tzdb/Asia/Istanbul")), + ("Asia/Jakarta", include_bytes!("../../../../third_party/tzdb/Asia/Jakarta")), + ("Asia/Jayapura", include_bytes!("../../../../third_party/tzdb/Asia/Jayapura")), + ("Asia/Jerusalem", include_bytes!("../../../../third_party/tzdb/Asia/Jerusalem")), + ("Asia/Kabul", include_bytes!("../../../../third_party/tzdb/Asia/Kabul")), + ("Asia/Kamchatka", include_bytes!("../../../../third_party/tzdb/Asia/Kamchatka")), + ("Asia/Karachi", include_bytes!("../../../../third_party/tzdb/Asia/Karachi")), + ("Asia/Kashgar", include_bytes!("../../../../third_party/tzdb/Asia/Kashgar")), + ("Asia/Kathmandu", include_bytes!("../../../../third_party/tzdb/Asia/Kathmandu")), + ("Asia/Khandyga", include_bytes!("../../../../third_party/tzdb/Asia/Khandyga")), + ("Asia/Kolkata", include_bytes!("../../../../third_party/tzdb/Asia/Kolkata")), + ("Asia/Krasnoyarsk", include_bytes!("../../../../third_party/tzdb/Asia/Krasnoyarsk")), + ("Asia/Kuala_Lumpur", include_bytes!("../../../../third_party/tzdb/Asia/Kuala_Lumpur")), + ("Asia/Kuching", include_bytes!("../../../../third_party/tzdb/Asia/Kuching")), + ("Asia/Kuwait", include_bytes!("../../../../third_party/tzdb/Asia/Kuwait")), + ("Asia/Macau", include_bytes!("../../../../third_party/tzdb/Asia/Macau")), + ("Asia/Magadan", include_bytes!("../../../../third_party/tzdb/Asia/Magadan")), + ("Asia/Makassar", include_bytes!("../../../../third_party/tzdb/Asia/Makassar")), + ("Asia/Manila", include_bytes!("../../../../third_party/tzdb/Asia/Manila")), + ("Asia/Muscat", include_bytes!("../../../../third_party/tzdb/Asia/Muscat")), + ("Asia/Nicosia", include_bytes!("../../../../third_party/tzdb/Asia/Nicosia")), + ("Asia/Novokuznetsk", include_bytes!("../../../../third_party/tzdb/Asia/Novokuznetsk")), + ("Asia/Novosibirsk", include_bytes!("../../../../third_party/tzdb/Asia/Novosibirsk")), + ("Asia/Omsk", include_bytes!("../../../../third_party/tzdb/Asia/Omsk")), + ("Asia/Oral", include_bytes!("../../../../third_party/tzdb/Asia/Oral")), + ("Asia/Phnom_Penh", include_bytes!("../../../../third_party/tzdb/Asia/Phnom_Penh")), + ("Asia/Pontianak", include_bytes!("../../../../third_party/tzdb/Asia/Pontianak")), + ("Asia/Pyongyang", include_bytes!("../../../../third_party/tzdb/Asia/Pyongyang")), + ("Asia/Qatar", include_bytes!("../../../../third_party/tzdb/Asia/Qatar")), + ("Asia/Qostanay", include_bytes!("../../../../third_party/tzdb/Asia/Qostanay")), + ("Asia/Qyzylorda", include_bytes!("../../../../third_party/tzdb/Asia/Qyzylorda")), + ("Asia/Riyadh", include_bytes!("../../../../third_party/tzdb/Asia/Riyadh")), + ("Asia/Sakhalin", include_bytes!("../../../../third_party/tzdb/Asia/Sakhalin")), + ("Asia/Samarkand", include_bytes!("../../../../third_party/tzdb/Asia/Samarkand")), + ("Asia/Seoul", include_bytes!("../../../../third_party/tzdb/Asia/Seoul")), + ("Asia/Shanghai", include_bytes!("../../../../third_party/tzdb/Asia/Shanghai")), + ("Asia/Singapore", include_bytes!("../../../../third_party/tzdb/Asia/Singapore")), + ("Asia/Srednekolymsk", include_bytes!("../../../../third_party/tzdb/Asia/Srednekolymsk")), + ("Asia/Taipei", include_bytes!("../../../../third_party/tzdb/Asia/Taipei")), + ("Asia/Tashkent", include_bytes!("../../../../third_party/tzdb/Asia/Tashkent")), + ("Asia/Tbilisi", include_bytes!("../../../../third_party/tzdb/Asia/Tbilisi")), + ("Asia/Tehran", include_bytes!("../../../../third_party/tzdb/Asia/Tehran")), + ("Asia/Tel_Aviv", include_bytes!("../../../../third_party/tzdb/Asia/Tel_Aviv")), + ("Asia/Thimphu", include_bytes!("../../../../third_party/tzdb/Asia/Thimphu")), + ("Asia/Tokyo", include_bytes!("../../../../third_party/tzdb/Asia/Tokyo")), + ("Asia/Tomsk", include_bytes!("../../../../third_party/tzdb/Asia/Tomsk")), + ("Asia/Ulaanbaatar", include_bytes!("../../../../third_party/tzdb/Asia/Ulaanbaatar")), + ("Asia/Urumqi", include_bytes!("../../../../third_party/tzdb/Asia/Urumqi")), + ("Asia/Ust-Nera", include_bytes!("../../../../third_party/tzdb/Asia/Ust-Nera")), + ("Asia/Vientiane", include_bytes!("../../../../third_party/tzdb/Asia/Vientiane")), + ("Asia/Vladivostok", include_bytes!("../../../../third_party/tzdb/Asia/Vladivostok")), + ("Asia/Yakutsk", include_bytes!("../../../../third_party/tzdb/Asia/Yakutsk")), + ("Asia/Yangon", include_bytes!("../../../../third_party/tzdb/Asia/Yangon")), + ("Asia/Yekaterinburg", include_bytes!("../../../../third_party/tzdb/Asia/Yekaterinburg")), + ("Asia/Yerevan", include_bytes!("../../../../third_party/tzdb/Asia/Yerevan")), + ("Atlantic/Azores", include_bytes!("../../../../third_party/tzdb/Atlantic/Azores")), + ("Atlantic/Bermuda", include_bytes!("../../../../third_party/tzdb/Atlantic/Bermuda")), + ("Atlantic/Canary", include_bytes!("../../../../third_party/tzdb/Atlantic/Canary")), + ("Atlantic/Cape_Verde", include_bytes!("../../../../third_party/tzdb/Atlantic/Cape_Verde")), + ("Atlantic/Faroe", include_bytes!("../../../../third_party/tzdb/Atlantic/Faroe")), + ("Atlantic/Jan_Mayen", include_bytes!("../../../../third_party/tzdb/Atlantic/Jan_Mayen")), + ("Atlantic/Madeira", include_bytes!("../../../../third_party/tzdb/Atlantic/Madeira")), + ("Atlantic/Reykjavik", include_bytes!("../../../../third_party/tzdb/Atlantic/Reykjavik")), + ( + "Atlantic/South_Georgia", + include_bytes!("../../../../third_party/tzdb/Atlantic/South_Georgia"), + ), + ("Atlantic/St_Helena", include_bytes!("../../../../third_party/tzdb/Atlantic/St_Helena")), + ("Atlantic/Stanley", include_bytes!("../../../../third_party/tzdb/Atlantic/Stanley")), + ("Australia/Adelaide", include_bytes!("../../../../third_party/tzdb/Australia/Adelaide")), + ("Australia/Brisbane", include_bytes!("../../../../third_party/tzdb/Australia/Brisbane")), + ( + "Australia/Broken_Hill", + include_bytes!("../../../../third_party/tzdb/Australia/Broken_Hill"), + ), + ("Australia/Canberra", include_bytes!("../../../../third_party/tzdb/Australia/Canberra")), + ("Australia/Currie", include_bytes!("../../../../third_party/tzdb/Australia/Currie")), + ("Australia/Darwin", include_bytes!("../../../../third_party/tzdb/Australia/Darwin")), + ("Australia/Eucla", include_bytes!("../../../../third_party/tzdb/Australia/Eucla")), + ("Australia/Hobart", include_bytes!("../../../../third_party/tzdb/Australia/Hobart")), + ("Australia/Lindeman", include_bytes!("../../../../third_party/tzdb/Australia/Lindeman")), + ("Australia/Lord_Howe", include_bytes!("../../../../third_party/tzdb/Australia/Lord_Howe")), + ("Australia/Melbourne", include_bytes!("../../../../third_party/tzdb/Australia/Melbourne")), + ("Australia/Perth", include_bytes!("../../../../third_party/tzdb/Australia/Perth")), + ("Australia/Sydney", include_bytes!("../../../../third_party/tzdb/Australia/Sydney")), + ( + "Australia/Yancowinna", + include_bytes!("../../../../third_party/tzdb/Australia/Yancowinna"), + ), + ("Etc/GMT", include_bytes!("../../../../third_party/tzdb/Etc/GMT")), + ("Etc/GMT+0", include_bytes!("../../../../third_party/tzdb/Etc/GMT+0")), + ("Etc/GMT+1", include_bytes!("../../../../third_party/tzdb/Etc/GMT+1")), + ("Etc/GMT+10", include_bytes!("../../../../third_party/tzdb/Etc/GMT+10")), + ("Etc/GMT+11", include_bytes!("../../../../third_party/tzdb/Etc/GMT+11")), + ("Etc/GMT+12", include_bytes!("../../../../third_party/tzdb/Etc/GMT+12")), + ("Etc/GMT+2", include_bytes!("../../../../third_party/tzdb/Etc/GMT+2")), + ("Etc/GMT+3", include_bytes!("../../../../third_party/tzdb/Etc/GMT+3")), + ("Etc/GMT+4", include_bytes!("../../../../third_party/tzdb/Etc/GMT+4")), + ("Etc/GMT+5", include_bytes!("../../../../third_party/tzdb/Etc/GMT+5")), + ("Etc/GMT+6", include_bytes!("../../../../third_party/tzdb/Etc/GMT+6")), + ("Etc/GMT+7", include_bytes!("../../../../third_party/tzdb/Etc/GMT+7")), + ("Etc/GMT+8", include_bytes!("../../../../third_party/tzdb/Etc/GMT+8")), + ("Etc/GMT+9", include_bytes!("../../../../third_party/tzdb/Etc/GMT+9")), + ("Etc/GMT-0", include_bytes!("../../../../third_party/tzdb/Etc/GMT-0")), + ("Etc/GMT-1", include_bytes!("../../../../third_party/tzdb/Etc/GMT-1")), + ("Etc/GMT-10", include_bytes!("../../../../third_party/tzdb/Etc/GMT-10")), + ("Etc/GMT-11", include_bytes!("../../../../third_party/tzdb/Etc/GMT-11")), + ("Etc/GMT-12", include_bytes!("../../../../third_party/tzdb/Etc/GMT-12")), + ("Etc/GMT-13", include_bytes!("../../../../third_party/tzdb/Etc/GMT-13")), + ("Etc/GMT-14", include_bytes!("../../../../third_party/tzdb/Etc/GMT-14")), + ("Etc/GMT-2", include_bytes!("../../../../third_party/tzdb/Etc/GMT-2")), + ("Etc/GMT-3", include_bytes!("../../../../third_party/tzdb/Etc/GMT-3")), + ("Etc/GMT-4", include_bytes!("../../../../third_party/tzdb/Etc/GMT-4")), + ("Etc/GMT-5", include_bytes!("../../../../third_party/tzdb/Etc/GMT-5")), + ("Etc/GMT-6", include_bytes!("../../../../third_party/tzdb/Etc/GMT-6")), + ("Etc/GMT-7", include_bytes!("../../../../third_party/tzdb/Etc/GMT-7")), + ("Etc/GMT-8", include_bytes!("../../../../third_party/tzdb/Etc/GMT-8")), + ("Etc/GMT-9", include_bytes!("../../../../third_party/tzdb/Etc/GMT-9")), + ("Etc/GMT0", include_bytes!("../../../../third_party/tzdb/Etc/GMT0")), + ("Etc/Greenwich", include_bytes!("../../../../third_party/tzdb/Etc/Greenwich")), + ("Etc/UCT", include_bytes!("../../../../third_party/tzdb/Etc/UCT")), + ("Etc/UTC", include_bytes!("../../../../third_party/tzdb/Etc/UTC")), + ("Etc/Universal", include_bytes!("../../../../third_party/tzdb/Etc/Universal")), + ("Etc/Zulu", include_bytes!("../../../../third_party/tzdb/Etc/Zulu")), + ("Europe/Amsterdam", include_bytes!("../../../../third_party/tzdb/Europe/Amsterdam")), + ("Europe/Andorra", include_bytes!("../../../../third_party/tzdb/Europe/Andorra")), + ("Europe/Astrakhan", include_bytes!("../../../../third_party/tzdb/Europe/Astrakhan")), + ("Europe/Athens", include_bytes!("../../../../third_party/tzdb/Europe/Athens")), + ("Europe/Belfast", include_bytes!("../../../../third_party/tzdb/Europe/Belfast")), + ("Europe/Belgrade", include_bytes!("../../../../third_party/tzdb/Europe/Belgrade")), + ("Europe/Berlin", include_bytes!("../../../../third_party/tzdb/Europe/Berlin")), + ("Europe/Bratislava", include_bytes!("../../../../third_party/tzdb/Europe/Bratislava")), + ("Europe/Brussels", include_bytes!("../../../../third_party/tzdb/Europe/Brussels")), + ("Europe/Bucharest", include_bytes!("../../../../third_party/tzdb/Europe/Bucharest")), + ("Europe/Budapest", include_bytes!("../../../../third_party/tzdb/Europe/Budapest")), + ("Europe/Busingen", include_bytes!("../../../../third_party/tzdb/Europe/Busingen")), + ("Europe/Chisinau", include_bytes!("../../../../third_party/tzdb/Europe/Chisinau")), + ("Europe/Copenhagen", include_bytes!("../../../../third_party/tzdb/Europe/Copenhagen")), + ("Europe/Dublin", include_bytes!("../../../../third_party/tzdb/Europe/Dublin")), + ("Europe/Gibraltar", include_bytes!("../../../../third_party/tzdb/Europe/Gibraltar")), + ("Europe/Guernsey", include_bytes!("../../../../third_party/tzdb/Europe/Guernsey")), + ("Europe/Helsinki", include_bytes!("../../../../third_party/tzdb/Europe/Helsinki")), + ("Europe/Isle_of_Man", include_bytes!("../../../../third_party/tzdb/Europe/Isle_of_Man")), + ("Europe/Istanbul", include_bytes!("../../../../third_party/tzdb/Europe/Istanbul")), + ("Europe/Jersey", include_bytes!("../../../../third_party/tzdb/Europe/Jersey")), + ("Europe/Kaliningrad", include_bytes!("../../../../third_party/tzdb/Europe/Kaliningrad")), + ("Europe/Kirov", include_bytes!("../../../../third_party/tzdb/Europe/Kirov")), + ("Europe/Kyiv", include_bytes!("../../../../third_party/tzdb/Europe/Kyiv")), + ("Europe/Lisbon", include_bytes!("../../../../third_party/tzdb/Europe/Lisbon")), + ("Europe/Ljubljana", include_bytes!("../../../../third_party/tzdb/Europe/Ljubljana")), + ("Europe/London", include_bytes!("../../../../third_party/tzdb/Europe/London")), + ("Europe/Luxembourg", include_bytes!("../../../../third_party/tzdb/Europe/Luxembourg")), + ("Europe/Madrid", include_bytes!("../../../../third_party/tzdb/Europe/Madrid")), + ("Europe/Malta", include_bytes!("../../../../third_party/tzdb/Europe/Malta")), + ("Europe/Mariehamn", include_bytes!("../../../../third_party/tzdb/Europe/Mariehamn")), + ("Europe/Minsk", include_bytes!("../../../../third_party/tzdb/Europe/Minsk")), + ("Europe/Monaco", include_bytes!("../../../../third_party/tzdb/Europe/Monaco")), + ("Europe/Moscow", include_bytes!("../../../../third_party/tzdb/Europe/Moscow")), + ("Europe/Nicosia", include_bytes!("../../../../third_party/tzdb/Europe/Nicosia")), + ("Europe/Oslo", include_bytes!("../../../../third_party/tzdb/Europe/Oslo")), + ("Europe/Paris", include_bytes!("../../../../third_party/tzdb/Europe/Paris")), + ("Europe/Podgorica", include_bytes!("../../../../third_party/tzdb/Europe/Podgorica")), + ("Europe/Prague", include_bytes!("../../../../third_party/tzdb/Europe/Prague")), + ("Europe/Riga", include_bytes!("../../../../third_party/tzdb/Europe/Riga")), + ("Europe/Rome", include_bytes!("../../../../third_party/tzdb/Europe/Rome")), + ("Europe/Samara", include_bytes!("../../../../third_party/tzdb/Europe/Samara")), + ("Europe/San_Marino", include_bytes!("../../../../third_party/tzdb/Europe/San_Marino")), + ("Europe/Sarajevo", include_bytes!("../../../../third_party/tzdb/Europe/Sarajevo")), + ("Europe/Saratov", include_bytes!("../../../../third_party/tzdb/Europe/Saratov")), + ("Europe/Simferopol", include_bytes!("../../../../third_party/tzdb/Europe/Simferopol")), + ("Europe/Skopje", include_bytes!("../../../../third_party/tzdb/Europe/Skopje")), + ("Europe/Sofia", include_bytes!("../../../../third_party/tzdb/Europe/Sofia")), + ("Europe/Stockholm", include_bytes!("../../../../third_party/tzdb/Europe/Stockholm")), + ("Europe/Tallinn", include_bytes!("../../../../third_party/tzdb/Europe/Tallinn")), + ("Europe/Tirane", include_bytes!("../../../../third_party/tzdb/Europe/Tirane")), + ("Europe/Tiraspol", include_bytes!("../../../../third_party/tzdb/Europe/Tiraspol")), + ("Europe/Ulyanovsk", include_bytes!("../../../../third_party/tzdb/Europe/Ulyanovsk")), + ("Europe/Vaduz", include_bytes!("../../../../third_party/tzdb/Europe/Vaduz")), + ("Europe/Vatican", include_bytes!("../../../../third_party/tzdb/Europe/Vatican")), + ("Europe/Vienna", include_bytes!("../../../../third_party/tzdb/Europe/Vienna")), + ("Europe/Vilnius", include_bytes!("../../../../third_party/tzdb/Europe/Vilnius")), + ("Europe/Volgograd", include_bytes!("../../../../third_party/tzdb/Europe/Volgograd")), + ("Europe/Warsaw", include_bytes!("../../../../third_party/tzdb/Europe/Warsaw")), + ("Europe/Zagreb", include_bytes!("../../../../third_party/tzdb/Europe/Zagreb")), + ("Europe/Zurich", include_bytes!("../../../../third_party/tzdb/Europe/Zurich")), + ("Factory", include_bytes!("../../../../third_party/tzdb/Factory")), + ("GMT", include_bytes!("../../../../third_party/tzdb/GMT")), + ("Indian/Antananarivo", include_bytes!("../../../../third_party/tzdb/Indian/Antananarivo")), + ("Indian/Chagos", include_bytes!("../../../../third_party/tzdb/Indian/Chagos")), + ("Indian/Christmas", include_bytes!("../../../../third_party/tzdb/Indian/Christmas")), + ("Indian/Cocos", include_bytes!("../../../../third_party/tzdb/Indian/Cocos")), + ("Indian/Comoro", include_bytes!("../../../../third_party/tzdb/Indian/Comoro")), + ("Indian/Kerguelen", include_bytes!("../../../../third_party/tzdb/Indian/Kerguelen")), + ("Indian/Mahe", include_bytes!("../../../../third_party/tzdb/Indian/Mahe")), + ("Indian/Maldives", include_bytes!("../../../../third_party/tzdb/Indian/Maldives")), + ("Indian/Mauritius", include_bytes!("../../../../third_party/tzdb/Indian/Mauritius")), + ("Indian/Mayotte", include_bytes!("../../../../third_party/tzdb/Indian/Mayotte")), + ("Indian/Reunion", include_bytes!("../../../../third_party/tzdb/Indian/Reunion")), + ("Pacific/Apia", include_bytes!("../../../../third_party/tzdb/Pacific/Apia")), + ("Pacific/Auckland", include_bytes!("../../../../third_party/tzdb/Pacific/Auckland")), + ( + "Pacific/Bougainville", + include_bytes!("../../../../third_party/tzdb/Pacific/Bougainville"), + ), + ("Pacific/Chatham", include_bytes!("../../../../third_party/tzdb/Pacific/Chatham")), + ("Pacific/Chuuk", include_bytes!("../../../../third_party/tzdb/Pacific/Chuuk")), + ("Pacific/Easter", include_bytes!("../../../../third_party/tzdb/Pacific/Easter")), + ("Pacific/Efate", include_bytes!("../../../../third_party/tzdb/Pacific/Efate")), + ("Pacific/Fakaofo", include_bytes!("../../../../third_party/tzdb/Pacific/Fakaofo")), + ("Pacific/Fiji", include_bytes!("../../../../third_party/tzdb/Pacific/Fiji")), + ("Pacific/Funafuti", include_bytes!("../../../../third_party/tzdb/Pacific/Funafuti")), + ("Pacific/Galapagos", include_bytes!("../../../../third_party/tzdb/Pacific/Galapagos")), + ("Pacific/Gambier", include_bytes!("../../../../third_party/tzdb/Pacific/Gambier")), + ("Pacific/Guadalcanal", include_bytes!("../../../../third_party/tzdb/Pacific/Guadalcanal")), + ("Pacific/Guam", include_bytes!("../../../../third_party/tzdb/Pacific/Guam")), + ("Pacific/Honolulu", include_bytes!("../../../../third_party/tzdb/Pacific/Honolulu")), + ("Pacific/Johnston", include_bytes!("../../../../third_party/tzdb/Pacific/Johnston")), + ("Pacific/Kanton", include_bytes!("../../../../third_party/tzdb/Pacific/Kanton")), + ("Pacific/Kiritimati", include_bytes!("../../../../third_party/tzdb/Pacific/Kiritimati")), + ("Pacific/Kosrae", include_bytes!("../../../../third_party/tzdb/Pacific/Kosrae")), + ("Pacific/Kwajalein", include_bytes!("../../../../third_party/tzdb/Pacific/Kwajalein")), + ("Pacific/Majuro", include_bytes!("../../../../third_party/tzdb/Pacific/Majuro")), + ("Pacific/Marquesas", include_bytes!("../../../../third_party/tzdb/Pacific/Marquesas")), + ("Pacific/Midway", include_bytes!("../../../../third_party/tzdb/Pacific/Midway")), + ("Pacific/Nauru", include_bytes!("../../../../third_party/tzdb/Pacific/Nauru")), + ("Pacific/Niue", include_bytes!("../../../../third_party/tzdb/Pacific/Niue")), + ("Pacific/Norfolk", include_bytes!("../../../../third_party/tzdb/Pacific/Norfolk")), + ("Pacific/Noumea", include_bytes!("../../../../third_party/tzdb/Pacific/Noumea")), + ("Pacific/Pago_Pago", include_bytes!("../../../../third_party/tzdb/Pacific/Pago_Pago")), + ("Pacific/Palau", include_bytes!("../../../../third_party/tzdb/Pacific/Palau")), + ("Pacific/Pitcairn", include_bytes!("../../../../third_party/tzdb/Pacific/Pitcairn")), + ("Pacific/Pohnpei", include_bytes!("../../../../third_party/tzdb/Pacific/Pohnpei")), + ( + "Pacific/Port_Moresby", + include_bytes!("../../../../third_party/tzdb/Pacific/Port_Moresby"), + ), + ("Pacific/Rarotonga", include_bytes!("../../../../third_party/tzdb/Pacific/Rarotonga")), + ("Pacific/Saipan", include_bytes!("../../../../third_party/tzdb/Pacific/Saipan")), + ("Pacific/Samoa", include_bytes!("../../../../third_party/tzdb/Pacific/Samoa")), + ("Pacific/Tahiti", include_bytes!("../../../../third_party/tzdb/Pacific/Tahiti")), + ("Pacific/Tarawa", include_bytes!("../../../../third_party/tzdb/Pacific/Tarawa")), + ("Pacific/Tongatapu", include_bytes!("../../../../third_party/tzdb/Pacific/Tongatapu")), + ("Pacific/Wake", include_bytes!("../../../../third_party/tzdb/Pacific/Wake")), + ("Pacific/Wallis", include_bytes!("../../../../third_party/tzdb/Pacific/Wallis")), + ("Pacific/Yap", include_bytes!("../../../../third_party/tzdb/Pacific/Yap")), + ("UTC", include_bytes!("../../../../third_party/tzdb/UTC")), + ("posixrules", include_bytes!("../../../../third_party/tzdb/posixrules")), +]; + +const LEGACY_ALIASES: &[(&str, &str)] = &[ + ("Africa/Accra", "Africa/Abidjan"), + ("Africa/Addis_Ababa", "Africa/Nairobi"), + ("Africa/Asmara", "Africa/Nairobi"), + ("Africa/Asmera", "Africa/Nairobi"), + ("Africa/Bamako", "Africa/Abidjan"), + ("Africa/Bangui", "Africa/Lagos"), + ("Africa/Banjul", "Africa/Abidjan"), + ("Africa/Blantyre", "Africa/Maputo"), + ("Africa/Brazzaville", "Africa/Lagos"), + ("Africa/Bujumbura", "Africa/Maputo"), + ("Africa/Conakry", "Africa/Abidjan"), + ("Africa/Dakar", "Africa/Abidjan"), + ("Africa/Dar_es_Salaam", "Africa/Nairobi"), + ("Africa/Djibouti", "Africa/Nairobi"), + ("Africa/Douala", "Africa/Lagos"), + ("Africa/Freetown", "Africa/Abidjan"), + ("Africa/Gaborone", "Africa/Maputo"), + ("Africa/Harare", "Africa/Maputo"), + ("Africa/Kampala", "Africa/Nairobi"), + ("Africa/Kigali", "Africa/Maputo"), + ("Africa/Kinshasa", "Africa/Lagos"), + ("Africa/Libreville", "Africa/Lagos"), + ("Africa/Lome", "Africa/Abidjan"), + ("Africa/Luanda", "Africa/Lagos"), + ("Africa/Lubumbashi", "Africa/Maputo"), + ("Africa/Lusaka", "Africa/Maputo"), + ("Africa/Malabo", "Africa/Lagos"), + ("Africa/Maseru", "Africa/Johannesburg"), + ("Africa/Mbabane", "Africa/Johannesburg"), + ("Africa/Mogadishu", "Africa/Nairobi"), + ("Africa/Niamey", "Africa/Lagos"), + ("Africa/Nouakchott", "Africa/Abidjan"), + ("Africa/Ouagadougou", "Africa/Abidjan"), + ("Africa/Porto-Novo", "Africa/Lagos"), + ("Africa/Timbuktu", "Africa/Abidjan"), + ("America/Anguilla", "America/Puerto_Rico"), + ("America/Antigua", "America/Puerto_Rico"), + ("America/Argentina/ComodRivadavia", "America/Argentina/Catamarca"), + ("America/Aruba", "America/Puerto_Rico"), + ("America/Atikokan", "America/Panama"), + ("America/Atka", "America/Adak"), + ("America/Blanc-Sablon", "America/Puerto_Rico"), + ("America/Buenos_Aires", "America/Argentina/Buenos_Aires"), + ("America/Catamarca", "America/Argentina/Catamarca"), + ("America/Cayman", "America/Panama"), + ("America/Coral_Harbour", "America/Panama"), + ("America/Cordoba", "America/Argentina/Cordoba"), + ("America/Creston", "America/Phoenix"), + ("America/Curacao", "America/Puerto_Rico"), + ("America/Dominica", "America/Puerto_Rico"), + ("America/Ensenada", "America/Tijuana"), + ("America/Fort_Wayne", "America/Indiana/Indianapolis"), + ("America/Godthab", "America/Nuuk"), + ("America/Grenada", "America/Puerto_Rico"), + ("America/Guadeloupe", "America/Puerto_Rico"), + ("America/Indianapolis", "America/Indiana/Indianapolis"), + ("America/Jujuy", "America/Argentina/Jujuy"), + ("America/Knox_IN", "America/Indiana/Knox"), + ("America/Kralendijk", "America/Puerto_Rico"), + ("America/Louisville", "America/Kentucky/Louisville"), + ("America/Lower_Princes", "America/Puerto_Rico"), + ("America/Marigot", "America/Puerto_Rico"), + ("America/Mendoza", "America/Argentina/Mendoza"), + ("America/Montreal", "America/Toronto"), + ("America/Montserrat", "America/Puerto_Rico"), + ("America/Nassau", "America/Toronto"), + ("America/Nipigon", "America/Toronto"), + ("America/Pangnirtung", "America/Iqaluit"), + ("America/Port_of_Spain", "America/Puerto_Rico"), + ("America/Porto_Acre", "America/Rio_Branco"), + ("America/Rainy_River", "America/Winnipeg"), + ("America/Rosario", "America/Argentina/Cordoba"), + ("America/Santa_Isabel", "America/Tijuana"), + ("America/Shiprock", "America/Denver"), + ("America/St_Barthelemy", "America/Puerto_Rico"), + ("America/St_Kitts", "America/Puerto_Rico"), + ("America/St_Lucia", "America/Puerto_Rico"), + ("America/St_Thomas", "America/Puerto_Rico"), + ("America/St_Vincent", "America/Puerto_Rico"), + ("America/Thunder_Bay", "America/Toronto"), + ("America/Tortola", "America/Puerto_Rico"), + ("America/Virgin", "America/Puerto_Rico"), + ("America/Yellowknife", "America/Edmonton"), + ("Antarctica/DumontDUrville", "Pacific/Port_Moresby"), + ("Antarctica/McMurdo", "Pacific/Auckland"), + ("Antarctica/South_Pole", "Pacific/Auckland"), + ("Antarctica/Syowa", "Asia/Riyadh"), + ("Arctic/Longyearbyen", "Europe/Berlin"), + ("Asia/Aden", "Asia/Riyadh"), + ("Asia/Ashkhabad", "Asia/Ashgabat"), + ("Asia/Bahrain", "Asia/Qatar"), + ("Asia/Brunei", "Asia/Kuching"), + ("Asia/Calcutta", "Asia/Kolkata"), + ("Asia/Choibalsan", "Asia/Ulaanbaatar"), + ("Asia/Chongqing", "Asia/Shanghai"), + ("Asia/Chungking", "Asia/Shanghai"), + ("Asia/Dacca", "Asia/Dhaka"), + ("Asia/Harbin", "Asia/Shanghai"), + ("Asia/Istanbul", "Europe/Istanbul"), + ("Asia/Kashgar", "Asia/Urumqi"), + ("Asia/Katmandu", "Asia/Kathmandu"), + ("Asia/Kuala_Lumpur", "Asia/Singapore"), + ("Asia/Kuwait", "Asia/Riyadh"), + ("Asia/Macao", "Asia/Macau"), + ("Asia/Muscat", "Asia/Dubai"), + ("Asia/Phnom_Penh", "Asia/Bangkok"), + ("Asia/Rangoon", "Asia/Yangon"), + ("Asia/Saigon", "Asia/Ho_Chi_Minh"), + ("Asia/Tel_Aviv", "Asia/Jerusalem"), + ("Asia/Thimbu", "Asia/Thimphu"), + ("Asia/Ujung_Pandang", "Asia/Makassar"), + ("Asia/Ulan_Bator", "Asia/Ulaanbaatar"), + ("Asia/Vientiane", "Asia/Bangkok"), + ("Atlantic/Faeroe", "Atlantic/Faroe"), + ("Atlantic/Jan_Mayen", "Europe/Berlin"), + ("Atlantic/Reykjavik", "Africa/Abidjan"), + ("Atlantic/St_Helena", "Africa/Abidjan"), + ("Australia/ACT", "Australia/Sydney"), + ("Australia/Canberra", "Australia/Sydney"), + ("Australia/Currie", "Australia/Hobart"), + ("Australia/LHI", "Australia/Lord_Howe"), + ("Australia/NSW", "Australia/Sydney"), + ("Australia/North", "Australia/Darwin"), + ("Australia/Queensland", "Australia/Brisbane"), + ("Australia/South", "Australia/Adelaide"), + ("Australia/Tasmania", "Australia/Hobart"), + ("Australia/Victoria", "Australia/Melbourne"), + ("Australia/West", "Australia/Perth"), + ("Australia/Yancowinna", "Australia/Broken_Hill"), + ("Brazil/Acre", "America/Rio_Branco"), + ("Brazil/DeNoronha", "America/Noronha"), + ("Brazil/East", "America/Sao_Paulo"), + ("Brazil/West", "America/Manaus"), + ("CET", "Europe/Brussels"), + ("CST6CDT", "America/Chicago"), + ("Canada/Atlantic", "America/Halifax"), + ("Canada/Central", "America/Winnipeg"), + ("Canada/Eastern", "America/Toronto"), + ("Canada/Mountain", "America/Edmonton"), + ("Canada/Newfoundland", "America/St_Johns"), + ("Canada/Pacific", "America/Vancouver"), + ("Canada/Saskatchewan", "America/Regina"), + ("Canada/Yukon", "America/Whitehorse"), + ("Chile/Continental", "America/Santiago"), + ("Chile/EasterIsland", "Pacific/Easter"), + ("Cuba", "America/Havana"), + ("EET", "Europe/Athens"), + ("EST", "America/Panama"), + ("EST5EDT", "America/New_York"), + ("Egypt", "Africa/Cairo"), + ("Eire", "Europe/Dublin"), + ("Etc/GMT+0", "Etc/GMT"), + ("Etc/GMT-0", "Etc/GMT"), + ("Etc/GMT0", "Etc/GMT"), + ("Etc/Greenwich", "Etc/GMT"), + ("Etc/Ignored", "Etc/UTC"), + ("Etc/UCT", "Etc/UTC"), + ("Etc/Universal", "Etc/UTC"), + ("Etc/Zulu", "Etc/UTC"), + ("Europe/Amsterdam", "Europe/Brussels"), + ("Europe/Belfast", "Europe/London"), + ("Europe/Bratislava", "Europe/Prague"), + ("Europe/Busingen", "Europe/Zurich"), + ("Europe/Copenhagen", "Europe/Berlin"), + ("Europe/Guernsey", "Europe/London"), + ("Europe/Isle_of_Man", "Europe/London"), + ("Europe/Jersey", "Europe/London"), + ("Europe/Kiev", "Europe/Kyiv"), + ("Europe/Ljubljana", "Europe/Belgrade"), + ("Europe/Luxembourg", "Europe/Brussels"), + ("Europe/Mariehamn", "Europe/Helsinki"), + ("Europe/Monaco", "Europe/Paris"), + ("Europe/Nicosia", "Asia/Nicosia"), + ("Europe/Oslo", "Europe/Berlin"), + ("Europe/Podgorica", "Europe/Belgrade"), + ("Europe/San_Marino", "Europe/Rome"), + ("Europe/Sarajevo", "Europe/Belgrade"), + ("Europe/Skopje", "Europe/Belgrade"), + ("Europe/Stockholm", "Europe/Berlin"), + ("Europe/Tiraspol", "Europe/Chisinau"), + ("Europe/Uzhgorod", "Europe/Kyiv"), + ("Europe/Vaduz", "Europe/Zurich"), + ("Europe/Vatican", "Europe/Rome"), + ("Europe/Zagreb", "Europe/Belgrade"), + ("Europe/Zaporozhye", "Europe/Kyiv"), + ("GB", "Europe/London"), + ("GB-Eire", "Europe/London"), + ("GMT+0", "Etc/GMT"), + ("GMT-0", "Etc/GMT"), + ("GMT0", "Etc/GMT"), + ("Greenwich", "Etc/GMT"), + ("HST", "Pacific/Honolulu"), + ("Hongkong", "Asia/Hong_Kong"), + ("Iceland", "Africa/Abidjan"), + ("Indian/Antananarivo", "Africa/Nairobi"), + ("Indian/Christmas", "Asia/Bangkok"), + ("Indian/Cocos", "Asia/Yangon"), + ("Indian/Comoro", "Africa/Nairobi"), + ("Indian/Kerguelen", "Indian/Maldives"), + ("Indian/Mahe", "Asia/Dubai"), + ("Indian/Mayotte", "Africa/Nairobi"), + ("Indian/Reunion", "Asia/Dubai"), + ("Iran", "Asia/Tehran"), + ("Israel", "Asia/Jerusalem"), + ("Jamaica", "America/Jamaica"), + ("Japan", "Asia/Tokyo"), + ("Kwajalein", "Pacific/Kwajalein"), + ("Libya", "Africa/Tripoli"), + ("MET", "Europe/Brussels"), + ("MST", "America/Phoenix"), + ("MST7MDT", "America/Denver"), + ("Mexico/BajaNorte", "America/Tijuana"), + ("Mexico/BajaSur", "America/Mazatlan"), + ("Mexico/General", "America/Mexico_City"), + ("NZ", "Pacific/Auckland"), + ("NZ-CHAT", "Pacific/Chatham"), + ("Navajo", "America/Denver"), + ("PRC", "Asia/Shanghai"), + ("PST8PDT", "America/Los_Angeles"), + ("Pacific/Chuuk", "Pacific/Port_Moresby"), + ("Pacific/Enderbury", "Pacific/Kanton"), + ("Pacific/Funafuti", "Pacific/Tarawa"), + ("Pacific/Johnston", "Pacific/Honolulu"), + ("Pacific/Majuro", "Pacific/Tarawa"), + ("Pacific/Midway", "Pacific/Pago_Pago"), + ("Pacific/Pohnpei", "Pacific/Guadalcanal"), + ("Pacific/Ponape", "Pacific/Guadalcanal"), + ("Pacific/Saipan", "Pacific/Guam"), + ("Pacific/Samoa", "Pacific/Pago_Pago"), + ("Pacific/Truk", "Pacific/Port_Moresby"), + ("Pacific/Wake", "Pacific/Tarawa"), + ("Pacific/Wallis", "Pacific/Tarawa"), + ("Pacific/Yap", "Pacific/Port_Moresby"), + ("Poland", "Europe/Warsaw"), + ("Portugal", "Europe/Lisbon"), + ("ROC", "Asia/Taipei"), + ("ROK", "Asia/Seoul"), + ("Singapore", "Asia/Singapore"), + ("Turkey", "Europe/Istanbul"), + ("UCT", "Etc/UTC"), + ("US/Alaska", "America/Anchorage"), + ("US/Aleutian", "America/Adak"), + ("US/Arizona", "America/Phoenix"), + ("US/Central", "America/Chicago"), + ("US/East-Indiana", "America/Indiana/Indianapolis"), + ("US/Eastern", "America/New_York"), + ("US/Hawaii", "Pacific/Honolulu"), + ("US/Indiana-Starke", "America/Indiana/Knox"), + ("US/Michigan", "America/Detroit"), + ("US/Mountain", "America/Denver"), + ("US/Pacific", "America/Los_Angeles"), + ("US/Samoa", "Pacific/Pago_Pago"), + ("UTC", "Etc/UTC"), + ("Universal", "Etc/UTC"), + ("W-SU", "Europe/Moscow"), + ("WET", "Europe/Lisbon"), + ("Zulu", "Etc/UTC"), +]; + +/// 区表:首次使用时解析全部 vendored 区文件,按名排序供二分查找。 +struct ZoneTable { + zones: Vec<(&'static str, TzifZone)>, +} + +static ZONE_TABLE: LazyLock = LazyLock::new(|| { + let mut zones = ZONE_FILES + .iter() + .filter_map(|(name, bytes)| parse_tzif(bytes).ok().map(|z| (*name, z))) + .collect::>(); + zones.sort_by(|a, b| a.0.cmp(b.0)); + ZoneTable { zones } +}); + +/// 按 IANA 区名(含 legacy 别名)查区数据。 +/// +/// # 步骤 +/// 1. 先解 legacy 别名(`LEGACY_ALIASES` 二分),未命中则原名。 +/// 2. 在区表二分查找,命中返回其 `TzifZone`。 +/// +/// # 边界与前提 +/// - 别名只解一层:别名目标是现行区名,不再二次解别名。 +/// +/// # 注意事项 +/// - 首次调用触发全量解析(毫秒级),之后为纯二分。 +#[allow(dead_code)] +pub(crate) fn tz_zone_data(name: &str) -> Option<&'static TzifZone> { + let target = match LEGACY_ALIASES.binary_search_by(|a| a.0.cmp(name)) { + Ok(i) => LEGACY_ALIASES[i].1, + Err(_) => name, + }; + match ZONE_TABLE.zones.binary_search_by(|z| z.0.cmp(target)) { + Ok(i) => Some(&ZONE_TABLE.zones[i].1), + Err(_) => None, + } +} + +/// 查某区在 `epoch_s`(纪元秒)生效的 UTC 偏移(秒)。 +/// +/// # 步骤 +/// 1. 查区数据,未命中返回 `None`。 +/// 2. `partition_point` 找最后一个 `time <= epoch_s` 的 transition: +/// 无(早于首个)取 `lmt_offset`,有取该 transition 的偏移。 +/// +/// # 边界与前提 +/// - 早于首个 transition 取 LMT;晚于末个 transition 取末偏移(`last_offset` +/// 与末次 transition 一致,故 `partition_point` 已覆盖)。 +/// +/// # 注意事项 +/// - 只支持正向查找(epoch → 偏移);local → epoch 的逆换算(ambiguous / +/// nonexistent)由调用方迭代,不在本函数。 +#[allow(dead_code)] +pub(crate) fn tz_offset_seconds(zone: &str, epoch_s: i64) -> Option { + let z = tz_zone_data(zone)?; + if z.transitions.is_empty() { + return Some(i64::from(z.last_offset)); + } + let idx = z.transitions.partition_point(|t| t.0 <= epoch_s); + if idx == 0 { + Some(i64::from(z.lmt_offset)) + } else if idx == z.transitions.len() { + Some(i64::from(z.last_offset)) + } else { + Some(i64::from(z.transitions[idx - 1].1)) + } +} + +/// 判断 `name` 是否为可接受的 IANA 区名(含 legacy 别名)。 +#[allow(dead_code)] +pub(crate) fn tz_is_iana_zone(name: &str) -> bool { + tz_zone_data(name).is_some() +} + +/// 查 `epoch_s` 之后(严格大于)的下一个 transition 纪元秒。 +#[allow(dead_code)] +pub(crate) fn tz_next_transition(zone: &str, epoch_s: i64) -> Option { + let z = tz_zone_data(zone)?; + z.transitions.iter().find(|t| t.0 > epoch_s).map(|t| t.0) +} + +/// 查 `epoch_s` 之前(严格小于)的上一个 transition 纪元秒。 +#[allow(dead_code)] +pub(crate) fn tz_prev_transition(zone: &str, epoch_s: i64) -> Option { + let z = tz_zone_data(zone)?; + z.transitions.iter().rev().find(|t| t.0 < epoch_s).map(|t| t.0) +} + +#[cfg(test)] +mod tests { + use super::*; + + /// 两个区名是否解析到同一份区数据(指针恒等)。 + fn same_zone(a: &str, b: &str) -> bool { + match (tz_zone_data(a), tz_zone_data(b)) { + (Some(x), Some(y)) => std::ptr::eq(x as *const _, y as *const _), + (None, None) => true, + _ => false, + } + } + + #[test] + fn new_york_1883_lmt_transition() { + // 1883 LMT transition(最早 transition,1970 年前,亚分钟 LMT -04:56:02)。 + let z = tz_zone_data("America/New_York").unwrap(); + assert_eq!(z.transitions[0].0, -2717650800); + assert_eq!(z.lmt_offset, -17762); + assert_eq!(tz_offset_seconds("America/New_York", -2717650800 - 1), Some(-17762)); + assert_eq!(tz_offset_seconds("America/New_York", -2717650800), Some(-18000)); + } + + #[test] + fn monrovia_sub_minute_offset() { + // 亚分钟偏移 -00:44:30;1970-01-01T12:00-00:44:30 对应纪元 45870 秒。 + assert_eq!(tz_offset_seconds("Africa/Monrovia", 45870), Some(-2670)); + assert_eq!(tz_offset_seconds("Africa/Monrovia", 0), Some(-2670)); + } + + #[test] + fn niue_sub_minute_lmt_transition() { + // 1952-10-15T23:59:59-11:19:40(亚分钟 LMT -11:19:40 → -11:20:00)。 + assert_eq!(tz_offset_seconds("Pacific/Niue", -543069620 - 1), Some(-40780)); + assert_eq!(tz_offset_seconds("Pacific/Niue", -543069620), Some(-40800)); + } + + #[test] + fn apia_2011_skip_day() { + // 2011-12-30 跳变(24 小时日):-10:00 → +14:00。 + assert_eq!(tz_offset_seconds("Pacific/Apia", 1325239200 - 1), Some(-36000)); + assert_eq!(tz_offset_seconds("Pacific/Apia", 1325239200), Some(50400)); + } + + #[test] + fn vancouver_2000_dst_start() { + // 2000-04-02 DST 开始(23 小时日):-08:00 → -07:00。 + assert_eq!(tz_offset_seconds("America/Vancouver", 954669600 - 1), Some(-28800)); + assert_eq!(tz_offset_seconds("America/Vancouver", 954669600), Some(-25200)); + } + + #[test] + fn lord_howe_half_hour_dst() { + // 半小时 DST:+10:30 → +11:00。 + assert_eq!(tz_offset_seconds("Australia/Lord_Howe", 941297400 - 1), Some(37800)); + assert_eq!(tz_offset_seconds("Australia/Lord_Howe", 941297400), Some(39600)); + } + + #[test] + fn casey_two_transitions_same_wall_day() { + // 2010-03-04 同一墙历日两次生效(表中为两条不同纪元 transition),解析器只保表。 + assert_eq!(tz_offset_seconds("Antarctica/Casey", 1267714800 - 1), Some(39600)); + assert_eq!(tz_offset_seconds("Antarctica/Casey", 1267714800), Some(28800)); + } + + #[test] + fn riyadh_and_paris_lmt() { + // 1850 年 Riyadh LMT +03:06:52;1800 年 Paris LMT +00:09:21。 + assert_eq!(tz_offset_seconds("Asia/Riyadh", -3786825600), Some(11212)); + assert_eq!(tz_offset_seconds("Europe/Paris", -5364662400), Some(561)); + } + + #[test] + fn legacy_alias_hits() { + // 语料钉住的 legacy 区名命中别名表,解析到同一区数据(指针恒等)。 + assert!(same_zone("Asia/Calcutta", "Asia/Kolkata")); + assert!(same_zone("Asia/Katmandu", "Asia/Kathmandu")); + assert!(same_zone("Etc/Ignored", "Etc/UTC")); + assert!(tz_is_iana_zone("Asia/Calcutta")); + assert!(tz_is_iana_zone("Etc/Ignored")); + } + + #[test] + fn invalid_zone_returns_none() { + // 非法区名返回 None。 + assert!(tz_zone_data("Mars/Olympus_Mons").is_none()); + assert_eq!(tz_offset_seconds("Not/AZone", 0), None); + assert!(!tz_is_iana_zone("Not/AZone")); + assert_eq!(tz_next_transition("Not/AZone", 0), None); + assert_eq!(tz_prev_transition("Not/AZone", 0), None); + } + + #[test] + fn next_and_prev_transition() { + // transition 前后边界。 + assert_eq!(tz_next_transition("Pacific/Apia", 1325239200 - 1), Some(1325239200)); + assert_eq!(tz_prev_transition("Pacific/Apia", 1325239200), Some(1316872800)); + assert_eq!(tz_prev_transition("Pacific/Apia", -2445424384), None); + assert_eq!(tz_next_transition("Etc/UTC", 0), None); + } + + #[test] + fn parse_tzif_version_header() { + // 版本头:魔数 / 版本字节 / 截断 / 非法版本。 + assert!(matches!(parse_tzif(b"TZif"), Err(TzifError::Truncated))); + let mut bad_magic = b"XZif2".to_vec(); + bad_magic.extend_from_slice(&[0u8; 39]); + assert!(matches!(parse_tzif(&bad_magic), Err(TzifError::BadMagic))); + let mut bad_ver = b"TZif".to_vec(); + bad_ver.push(b'9'); + bad_ver.extend_from_slice(&[0u8; 40]); + assert!(matches!(parse_tzif(&bad_ver), Err(TzifError::BadVersion))); + } +} diff --git a/third_party/tzdb/Africa/Abidjan b/third_party/tzdb/Africa/Abidjan new file mode 100644 index 00000000..28b32ab2 Binary files /dev/null and b/third_party/tzdb/Africa/Abidjan differ diff --git a/third_party/tzdb/Africa/Accra b/third_party/tzdb/Africa/Accra new file mode 100644 index 00000000..d0083ed8 Binary files /dev/null and b/third_party/tzdb/Africa/Accra differ diff --git a/third_party/tzdb/Africa/Addis_Ababa b/third_party/tzdb/Africa/Addis_Ababa new file mode 100644 index 00000000..aab259ba Binary files /dev/null and b/third_party/tzdb/Africa/Addis_Ababa differ diff --git a/third_party/tzdb/Africa/Algiers b/third_party/tzdb/Africa/Algiers new file mode 100644 index 00000000..6cfd8a16 Binary files /dev/null and b/third_party/tzdb/Africa/Algiers differ diff --git a/third_party/tzdb/Africa/Asmara b/third_party/tzdb/Africa/Asmara new file mode 100644 index 00000000..20ad6398 Binary files /dev/null and b/third_party/tzdb/Africa/Asmara differ diff --git a/third_party/tzdb/Africa/Bamako b/third_party/tzdb/Africa/Bamako new file mode 100644 index 00000000..1b01ed07 Binary files /dev/null and b/third_party/tzdb/Africa/Bamako differ diff --git a/third_party/tzdb/Africa/Bangui b/third_party/tzdb/Africa/Bangui new file mode 100644 index 00000000..3d7af1ea Binary files /dev/null and b/third_party/tzdb/Africa/Bangui differ diff --git a/third_party/tzdb/Africa/Banjul b/third_party/tzdb/Africa/Banjul new file mode 100644 index 00000000..00ed839c Binary files /dev/null and b/third_party/tzdb/Africa/Banjul differ diff --git a/third_party/tzdb/Africa/Bissau b/third_party/tzdb/Africa/Bissau new file mode 100644 index 00000000..82ea5aaf Binary files /dev/null and b/third_party/tzdb/Africa/Bissau differ diff --git a/third_party/tzdb/Africa/Blantyre b/third_party/tzdb/Africa/Blantyre new file mode 100644 index 00000000..1c4792ca Binary files /dev/null and b/third_party/tzdb/Africa/Blantyre differ diff --git a/third_party/tzdb/Africa/Brazzaville b/third_party/tzdb/Africa/Brazzaville new file mode 100644 index 00000000..0748859c Binary files /dev/null and b/third_party/tzdb/Africa/Brazzaville differ diff --git a/third_party/tzdb/Africa/Bujumbura b/third_party/tzdb/Africa/Bujumbura new file mode 100644 index 00000000..cc44d344 Binary files /dev/null and b/third_party/tzdb/Africa/Bujumbura differ diff --git a/third_party/tzdb/Africa/Cairo b/third_party/tzdb/Africa/Cairo new file mode 100644 index 00000000..dd538c65 Binary files /dev/null and b/third_party/tzdb/Africa/Cairo differ diff --git a/third_party/tzdb/Africa/Casablanca b/third_party/tzdb/Africa/Casablanca new file mode 100644 index 00000000..d39016b8 Binary files /dev/null and b/third_party/tzdb/Africa/Casablanca differ diff --git a/third_party/tzdb/Africa/Ceuta b/third_party/tzdb/Africa/Ceuta new file mode 100644 index 00000000..b41ec4f8 Binary files /dev/null and b/third_party/tzdb/Africa/Ceuta differ diff --git a/third_party/tzdb/Africa/Conakry b/third_party/tzdb/Africa/Conakry new file mode 100644 index 00000000..d838ed62 Binary files /dev/null and b/third_party/tzdb/Africa/Conakry differ diff --git a/third_party/tzdb/Africa/Dakar b/third_party/tzdb/Africa/Dakar new file mode 100644 index 00000000..e8f6adb5 Binary files /dev/null and b/third_party/tzdb/Africa/Dakar differ diff --git a/third_party/tzdb/Africa/Dar_es_Salaam b/third_party/tzdb/Africa/Dar_es_Salaam new file mode 100644 index 00000000..0d8559cc Binary files /dev/null and b/third_party/tzdb/Africa/Dar_es_Salaam differ diff --git a/third_party/tzdb/Africa/Djibouti b/third_party/tzdb/Africa/Djibouti new file mode 100644 index 00000000..c64105be Binary files /dev/null and b/third_party/tzdb/Africa/Djibouti differ diff --git a/third_party/tzdb/Africa/Douala b/third_party/tzdb/Africa/Douala new file mode 100644 index 00000000..d67ec9ee Binary files /dev/null and b/third_party/tzdb/Africa/Douala differ diff --git a/third_party/tzdb/Africa/El_Aaiun b/third_party/tzdb/Africa/El_Aaiun new file mode 100644 index 00000000..066fbed0 Binary files /dev/null and b/third_party/tzdb/Africa/El_Aaiun differ diff --git a/third_party/tzdb/Africa/Freetown b/third_party/tzdb/Africa/Freetown new file mode 100644 index 00000000..0c927edf Binary files /dev/null and b/third_party/tzdb/Africa/Freetown differ diff --git a/third_party/tzdb/Africa/Gaborone b/third_party/tzdb/Africa/Gaborone new file mode 100644 index 00000000..3ca163d6 Binary files /dev/null and b/third_party/tzdb/Africa/Gaborone differ diff --git a/third_party/tzdb/Africa/Harare b/third_party/tzdb/Africa/Harare new file mode 100644 index 00000000..7ae0ec0d Binary files /dev/null and b/third_party/tzdb/Africa/Harare differ diff --git a/third_party/tzdb/Africa/Johannesburg b/third_party/tzdb/Africa/Johannesburg new file mode 100644 index 00000000..b1c425da Binary files /dev/null and b/third_party/tzdb/Africa/Johannesburg differ diff --git a/third_party/tzdb/Africa/Juba b/third_party/tzdb/Africa/Juba new file mode 100644 index 00000000..06482943 Binary files /dev/null and b/third_party/tzdb/Africa/Juba differ diff --git a/third_party/tzdb/Africa/Kampala b/third_party/tzdb/Africa/Kampala new file mode 100644 index 00000000..4e715f7b Binary files /dev/null and b/third_party/tzdb/Africa/Kampala differ diff --git a/third_party/tzdb/Africa/Khartoum b/third_party/tzdb/Africa/Khartoum new file mode 100644 index 00000000..8ee8cb92 Binary files /dev/null and b/third_party/tzdb/Africa/Khartoum differ diff --git a/third_party/tzdb/Africa/Kigali b/third_party/tzdb/Africa/Kigali new file mode 100644 index 00000000..eec27384 Binary files /dev/null and b/third_party/tzdb/Africa/Kigali differ diff --git a/third_party/tzdb/Africa/Kinshasa b/third_party/tzdb/Africa/Kinshasa new file mode 100644 index 00000000..fc6beb51 Binary files /dev/null and b/third_party/tzdb/Africa/Kinshasa differ diff --git a/third_party/tzdb/Africa/Lagos b/third_party/tzdb/Africa/Lagos new file mode 100644 index 00000000..afb6a4a8 Binary files /dev/null and b/third_party/tzdb/Africa/Lagos differ diff --git a/third_party/tzdb/Africa/Libreville b/third_party/tzdb/Africa/Libreville new file mode 100644 index 00000000..4e926400 Binary files /dev/null and b/third_party/tzdb/Africa/Libreville differ diff --git a/third_party/tzdb/Africa/Lome b/third_party/tzdb/Africa/Lome new file mode 100644 index 00000000..d59d0b50 Binary files /dev/null and b/third_party/tzdb/Africa/Lome differ diff --git a/third_party/tzdb/Africa/Luanda b/third_party/tzdb/Africa/Luanda new file mode 100644 index 00000000..6cf0470a Binary files /dev/null and b/third_party/tzdb/Africa/Luanda differ diff --git a/third_party/tzdb/Africa/Lubumbashi b/third_party/tzdb/Africa/Lubumbashi new file mode 100644 index 00000000..52adec46 Binary files /dev/null and b/third_party/tzdb/Africa/Lubumbashi differ diff --git a/third_party/tzdb/Africa/Lusaka b/third_party/tzdb/Africa/Lusaka new file mode 100644 index 00000000..15ed5788 Binary files /dev/null and b/third_party/tzdb/Africa/Lusaka differ diff --git a/third_party/tzdb/Africa/Malabo b/third_party/tzdb/Africa/Malabo new file mode 100644 index 00000000..cc910b7d Binary files /dev/null and b/third_party/tzdb/Africa/Malabo differ diff --git a/third_party/tzdb/Africa/Maputo b/third_party/tzdb/Africa/Maputo new file mode 100644 index 00000000..65f043f1 Binary files /dev/null and b/third_party/tzdb/Africa/Maputo differ diff --git a/third_party/tzdb/Africa/Maseru b/third_party/tzdb/Africa/Maseru new file mode 100644 index 00000000..08188bd4 Binary files /dev/null and b/third_party/tzdb/Africa/Maseru differ diff --git a/third_party/tzdb/Africa/Mbabane b/third_party/tzdb/Africa/Mbabane new file mode 100644 index 00000000..86117a35 Binary files /dev/null and b/third_party/tzdb/Africa/Mbabane differ diff --git a/third_party/tzdb/Africa/Mogadishu b/third_party/tzdb/Africa/Mogadishu new file mode 100644 index 00000000..b8070a25 Binary files /dev/null and b/third_party/tzdb/Africa/Mogadishu differ diff --git a/third_party/tzdb/Africa/Monrovia b/third_party/tzdb/Africa/Monrovia new file mode 100644 index 00000000..6d688502 Binary files /dev/null and b/third_party/tzdb/Africa/Monrovia differ diff --git a/third_party/tzdb/Africa/Nairobi b/third_party/tzdb/Africa/Nairobi new file mode 100644 index 00000000..9dcfc19c Binary files /dev/null and b/third_party/tzdb/Africa/Nairobi differ diff --git a/third_party/tzdb/Africa/Ndjamena b/third_party/tzdb/Africa/Ndjamena new file mode 100644 index 00000000..a968845e Binary files /dev/null and b/third_party/tzdb/Africa/Ndjamena differ diff --git a/third_party/tzdb/Africa/Niamey b/third_party/tzdb/Africa/Niamey new file mode 100644 index 00000000..d094ceb6 Binary files /dev/null and b/third_party/tzdb/Africa/Niamey differ diff --git a/third_party/tzdb/Africa/Nouakchott b/third_party/tzdb/Africa/Nouakchott new file mode 100644 index 00000000..8c02a7fa Binary files /dev/null and b/third_party/tzdb/Africa/Nouakchott differ diff --git a/third_party/tzdb/Africa/Ouagadougou b/third_party/tzdb/Africa/Ouagadougou new file mode 100644 index 00000000..1f73c265 Binary files /dev/null and b/third_party/tzdb/Africa/Ouagadougou differ diff --git a/third_party/tzdb/Africa/Porto-Novo b/third_party/tzdb/Africa/Porto-Novo new file mode 100644 index 00000000..7e212f88 Binary files /dev/null and b/third_party/tzdb/Africa/Porto-Novo differ diff --git a/third_party/tzdb/Africa/Sao_Tome b/third_party/tzdb/Africa/Sao_Tome new file mode 100644 index 00000000..59f3759c Binary files /dev/null and b/third_party/tzdb/Africa/Sao_Tome differ diff --git a/third_party/tzdb/Africa/Timbuktu b/third_party/tzdb/Africa/Timbuktu new file mode 100644 index 00000000..1b01ed07 Binary files /dev/null and b/third_party/tzdb/Africa/Timbuktu differ diff --git a/third_party/tzdb/Africa/Tripoli b/third_party/tzdb/Africa/Tripoli new file mode 100644 index 00000000..07b393bb Binary files /dev/null and b/third_party/tzdb/Africa/Tripoli differ diff --git a/third_party/tzdb/Africa/Tunis b/third_party/tzdb/Africa/Tunis new file mode 100644 index 00000000..427fa563 Binary files /dev/null and b/third_party/tzdb/Africa/Tunis differ diff --git a/third_party/tzdb/Africa/Windhoek b/third_party/tzdb/Africa/Windhoek new file mode 100644 index 00000000..abecd137 Binary files /dev/null and b/third_party/tzdb/Africa/Windhoek differ diff --git a/third_party/tzdb/America/Adak b/third_party/tzdb/America/Adak new file mode 100644 index 00000000..43236498 Binary files /dev/null and b/third_party/tzdb/America/Adak differ diff --git a/third_party/tzdb/America/Anchorage b/third_party/tzdb/America/Anchorage new file mode 100644 index 00000000..9bbb2fd3 Binary files /dev/null and b/third_party/tzdb/America/Anchorage differ diff --git a/third_party/tzdb/America/Anguilla b/third_party/tzdb/America/Anguilla new file mode 100644 index 00000000..cf4d87d4 Binary files /dev/null and b/third_party/tzdb/America/Anguilla differ diff --git a/third_party/tzdb/America/Antigua b/third_party/tzdb/America/Antigua new file mode 100644 index 00000000..3e767d86 Binary files /dev/null and b/third_party/tzdb/America/Antigua differ diff --git a/third_party/tzdb/America/Araguaina b/third_party/tzdb/America/Araguaina new file mode 100644 index 00000000..919723dc Binary files /dev/null and b/third_party/tzdb/America/Araguaina differ diff --git a/third_party/tzdb/America/Argentina/Buenos_Aires b/third_party/tzdb/America/Argentina/Buenos_Aires new file mode 100644 index 00000000..cc82e698 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Buenos_Aires differ diff --git a/third_party/tzdb/America/Argentina/Catamarca b/third_party/tzdb/America/Argentina/Catamarca new file mode 100644 index 00000000..7268eb37 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Catamarca differ diff --git a/third_party/tzdb/America/Argentina/Cordoba b/third_party/tzdb/America/Argentina/Cordoba new file mode 100644 index 00000000..2ad6ea5d Binary files /dev/null and b/third_party/tzdb/America/Argentina/Cordoba differ diff --git a/third_party/tzdb/America/Argentina/Jujuy b/third_party/tzdb/America/Argentina/Jujuy new file mode 100644 index 00000000..7ca0b46f Binary files /dev/null and b/third_party/tzdb/America/Argentina/Jujuy differ diff --git a/third_party/tzdb/America/Argentina/La_Rioja b/third_party/tzdb/America/Argentina/La_Rioja new file mode 100644 index 00000000..a6a6694f Binary files /dev/null and b/third_party/tzdb/America/Argentina/La_Rioja differ diff --git a/third_party/tzdb/America/Argentina/Mendoza b/third_party/tzdb/America/Argentina/Mendoza new file mode 100644 index 00000000..3232c80e Binary files /dev/null and b/third_party/tzdb/America/Argentina/Mendoza differ diff --git a/third_party/tzdb/America/Argentina/Rio_Gallegos b/third_party/tzdb/America/Argentina/Rio_Gallegos new file mode 100644 index 00000000..8b1a2816 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Rio_Gallegos differ diff --git a/third_party/tzdb/America/Argentina/Salta b/third_party/tzdb/America/Argentina/Salta new file mode 100644 index 00000000..7072dec2 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Salta differ diff --git a/third_party/tzdb/America/Argentina/San_Juan b/third_party/tzdb/America/Argentina/San_Juan new file mode 100644 index 00000000..f3e185c3 Binary files /dev/null and b/third_party/tzdb/America/Argentina/San_Juan differ diff --git a/third_party/tzdb/America/Argentina/San_Luis b/third_party/tzdb/America/Argentina/San_Luis new file mode 100644 index 00000000..2d1da3ae Binary files /dev/null and b/third_party/tzdb/America/Argentina/San_Luis differ diff --git a/third_party/tzdb/America/Argentina/Tucuman b/third_party/tzdb/America/Argentina/Tucuman new file mode 100644 index 00000000..c6449f58 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Tucuman differ diff --git a/third_party/tzdb/America/Argentina/Ushuaia b/third_party/tzdb/America/Argentina/Ushuaia new file mode 100644 index 00000000..e74ce049 Binary files /dev/null and b/third_party/tzdb/America/Argentina/Ushuaia differ diff --git a/third_party/tzdb/America/Aruba b/third_party/tzdb/America/Aruba new file mode 100644 index 00000000..99aff0df Binary files /dev/null and b/third_party/tzdb/America/Aruba differ diff --git a/third_party/tzdb/America/Asuncion b/third_party/tzdb/America/Asuncion new file mode 100644 index 00000000..9b07a80b Binary files /dev/null and b/third_party/tzdb/America/Asuncion differ diff --git a/third_party/tzdb/America/Atikokan b/third_party/tzdb/America/Atikokan new file mode 100644 index 00000000..629ed423 Binary files /dev/null and b/third_party/tzdb/America/Atikokan differ diff --git a/third_party/tzdb/America/Atka b/third_party/tzdb/America/Atka new file mode 100644 index 00000000..43236498 Binary files /dev/null and b/third_party/tzdb/America/Atka differ diff --git a/third_party/tzdb/America/Bahia b/third_party/tzdb/America/Bahia new file mode 100644 index 00000000..0b65e49f Binary files /dev/null and b/third_party/tzdb/America/Bahia differ diff --git a/third_party/tzdb/America/Bahia_Banderas b/third_party/tzdb/America/Bahia_Banderas new file mode 100644 index 00000000..3a493e3d Binary files /dev/null and b/third_party/tzdb/America/Bahia_Banderas differ diff --git a/third_party/tzdb/America/Barbados b/third_party/tzdb/America/Barbados new file mode 100644 index 00000000..00cd045a Binary files /dev/null and b/third_party/tzdb/America/Barbados differ diff --git a/third_party/tzdb/America/Belem b/third_party/tzdb/America/Belem new file mode 100644 index 00000000..0ae12026 Binary files /dev/null and b/third_party/tzdb/America/Belem differ diff --git a/third_party/tzdb/America/Belize b/third_party/tzdb/America/Belize new file mode 100644 index 00000000..e6f5dfa6 Binary files /dev/null and b/third_party/tzdb/America/Belize differ diff --git a/third_party/tzdb/America/Blanc-Sablon b/third_party/tzdb/America/Blanc-Sablon new file mode 100644 index 00000000..f9f13a16 Binary files /dev/null and b/third_party/tzdb/America/Blanc-Sablon differ diff --git a/third_party/tzdb/America/Boa_Vista b/third_party/tzdb/America/Boa_Vista new file mode 100644 index 00000000..08d518b1 Binary files /dev/null and b/third_party/tzdb/America/Boa_Vista differ diff --git a/third_party/tzdb/America/Bogota b/third_party/tzdb/America/Bogota new file mode 100644 index 00000000..331a1b7c Binary files /dev/null and b/third_party/tzdb/America/Bogota differ diff --git a/third_party/tzdb/America/Boise b/third_party/tzdb/America/Boise new file mode 100644 index 00000000..aad1d991 Binary files /dev/null and b/third_party/tzdb/America/Boise differ diff --git a/third_party/tzdb/America/Cambridge_Bay b/third_party/tzdb/America/Cambridge_Bay new file mode 100644 index 00000000..7e58a203 Binary files /dev/null and b/third_party/tzdb/America/Cambridge_Bay differ diff --git a/third_party/tzdb/America/Campo_Grande b/third_party/tzdb/America/Campo_Grande new file mode 100644 index 00000000..53b3330f Binary files /dev/null and b/third_party/tzdb/America/Campo_Grande differ diff --git a/third_party/tzdb/America/Cancun b/third_party/tzdb/America/Cancun new file mode 100644 index 00000000..0f7771e8 Binary files /dev/null and b/third_party/tzdb/America/Cancun differ diff --git a/third_party/tzdb/America/Caracas b/third_party/tzdb/America/Caracas new file mode 100644 index 00000000..3f3ebc9c Binary files /dev/null and b/third_party/tzdb/America/Caracas differ diff --git a/third_party/tzdb/America/Cayenne b/third_party/tzdb/America/Cayenne new file mode 100644 index 00000000..e8985942 Binary files /dev/null and b/third_party/tzdb/America/Cayenne differ diff --git a/third_party/tzdb/America/Cayman b/third_party/tzdb/America/Cayman new file mode 100644 index 00000000..91b0d589 Binary files /dev/null and b/third_party/tzdb/America/Cayman differ diff --git a/third_party/tzdb/America/Chicago b/third_party/tzdb/America/Chicago new file mode 100644 index 00000000..c6981a06 Binary files /dev/null and b/third_party/tzdb/America/Chicago differ diff --git a/third_party/tzdb/America/Chihuahua b/third_party/tzdb/America/Chihuahua new file mode 100644 index 00000000..667a2191 Binary files /dev/null and b/third_party/tzdb/America/Chihuahua differ diff --git a/third_party/tzdb/America/Ciudad_Juarez b/third_party/tzdb/America/Ciudad_Juarez new file mode 100644 index 00000000..29af5982 Binary files /dev/null and b/third_party/tzdb/America/Ciudad_Juarez differ diff --git a/third_party/tzdb/America/Coral_Harbour b/third_party/tzdb/America/Coral_Harbour new file mode 100644 index 00000000..629ed423 Binary files /dev/null and b/third_party/tzdb/America/Coral_Harbour differ diff --git a/third_party/tzdb/America/Costa_Rica b/third_party/tzdb/America/Costa_Rica new file mode 100644 index 00000000..37cb85e4 Binary files /dev/null and b/third_party/tzdb/America/Costa_Rica differ diff --git a/third_party/tzdb/America/Coyhaique b/third_party/tzdb/America/Coyhaique new file mode 100644 index 00000000..e0c6832b Binary files /dev/null and b/third_party/tzdb/America/Coyhaique differ diff --git a/third_party/tzdb/America/Creston b/third_party/tzdb/America/Creston new file mode 100644 index 00000000..ca648573 Binary files /dev/null and b/third_party/tzdb/America/Creston differ diff --git a/third_party/tzdb/America/Cuiaba b/third_party/tzdb/America/Cuiaba new file mode 100644 index 00000000..26e97f6e Binary files /dev/null and b/third_party/tzdb/America/Cuiaba differ diff --git a/third_party/tzdb/America/Curacao b/third_party/tzdb/America/Curacao new file mode 100644 index 00000000..f7ab6efc Binary files /dev/null and b/third_party/tzdb/America/Curacao differ diff --git a/third_party/tzdb/America/Danmarkshavn b/third_party/tzdb/America/Danmarkshavn new file mode 100644 index 00000000..9549adcb Binary files /dev/null and b/third_party/tzdb/America/Danmarkshavn differ diff --git a/third_party/tzdb/America/Dawson b/third_party/tzdb/America/Dawson new file mode 100644 index 00000000..343b6322 Binary files /dev/null and b/third_party/tzdb/America/Dawson differ diff --git a/third_party/tzdb/America/Dawson_Creek b/third_party/tzdb/America/Dawson_Creek new file mode 100644 index 00000000..db9e3396 Binary files /dev/null and b/third_party/tzdb/America/Dawson_Creek differ diff --git a/third_party/tzdb/America/Denver b/third_party/tzdb/America/Denver new file mode 100644 index 00000000..abb2b974 Binary files /dev/null and b/third_party/tzdb/America/Denver differ diff --git a/third_party/tzdb/America/Detroit b/third_party/tzdb/America/Detroit new file mode 100644 index 00000000..e104faa4 Binary files /dev/null and b/third_party/tzdb/America/Detroit differ diff --git a/third_party/tzdb/America/Dominica b/third_party/tzdb/America/Dominica new file mode 100644 index 00000000..14b4ef8a Binary files /dev/null and b/third_party/tzdb/America/Dominica differ diff --git a/third_party/tzdb/America/Edmonton b/third_party/tzdb/America/Edmonton new file mode 100644 index 00000000..cd78a6f8 Binary files /dev/null and b/third_party/tzdb/America/Edmonton differ diff --git a/third_party/tzdb/America/Eirunepe b/third_party/tzdb/America/Eirunepe new file mode 100644 index 00000000..d4c46e30 Binary files /dev/null and b/third_party/tzdb/America/Eirunepe differ diff --git a/third_party/tzdb/America/El_Salvador b/third_party/tzdb/America/El_Salvador new file mode 100644 index 00000000..e2f22304 Binary files /dev/null and b/third_party/tzdb/America/El_Salvador differ diff --git a/third_party/tzdb/America/Ensenada b/third_party/tzdb/America/Ensenada new file mode 100644 index 00000000..cf298188 Binary files /dev/null and b/third_party/tzdb/America/Ensenada differ diff --git a/third_party/tzdb/America/Fort_Nelson b/third_party/tzdb/America/Fort_Nelson new file mode 100644 index 00000000..5a0b7f1c Binary files /dev/null and b/third_party/tzdb/America/Fort_Nelson differ diff --git a/third_party/tzdb/America/Fortaleza b/third_party/tzdb/America/Fortaleza new file mode 100644 index 00000000..bee1a951 Binary files /dev/null and b/third_party/tzdb/America/Fortaleza differ diff --git a/third_party/tzdb/America/Glace_Bay b/third_party/tzdb/America/Glace_Bay new file mode 100644 index 00000000..48412a4c Binary files /dev/null and b/third_party/tzdb/America/Glace_Bay differ diff --git a/third_party/tzdb/America/Goose_Bay b/third_party/tzdb/America/Goose_Bay new file mode 100644 index 00000000..a3f29907 Binary files /dev/null and b/third_party/tzdb/America/Goose_Bay differ diff --git a/third_party/tzdb/America/Grand_Turk b/third_party/tzdb/America/Grand_Turk new file mode 100644 index 00000000..06da1a6d Binary files /dev/null and b/third_party/tzdb/America/Grand_Turk differ diff --git a/third_party/tzdb/America/Grenada b/third_party/tzdb/America/Grenada new file mode 100644 index 00000000..3f150740 Binary files /dev/null and b/third_party/tzdb/America/Grenada differ diff --git a/third_party/tzdb/America/Guadeloupe b/third_party/tzdb/America/Guadeloupe new file mode 100644 index 00000000..1a667ac7 Binary files /dev/null and b/third_party/tzdb/America/Guadeloupe differ diff --git a/third_party/tzdb/America/Guatemala b/third_party/tzdb/America/Guatemala new file mode 100644 index 00000000..407138ca Binary files /dev/null and b/third_party/tzdb/America/Guatemala differ diff --git a/third_party/tzdb/America/Guayaquil b/third_party/tzdb/America/Guayaquil new file mode 100644 index 00000000..40831be1 Binary files /dev/null and b/third_party/tzdb/America/Guayaquil differ diff --git a/third_party/tzdb/America/Guyana b/third_party/tzdb/America/Guyana new file mode 100644 index 00000000..9b703672 Binary files /dev/null and b/third_party/tzdb/America/Guyana differ diff --git a/third_party/tzdb/America/Halifax b/third_party/tzdb/America/Halifax new file mode 100644 index 00000000..756099ab Binary files /dev/null and b/third_party/tzdb/America/Halifax differ diff --git a/third_party/tzdb/America/Havana b/third_party/tzdb/America/Havana new file mode 100644 index 00000000..b69ac451 Binary files /dev/null and b/third_party/tzdb/America/Havana differ diff --git a/third_party/tzdb/America/Hermosillo b/third_party/tzdb/America/Hermosillo new file mode 100644 index 00000000..441fe3f2 Binary files /dev/null and b/third_party/tzdb/America/Hermosillo differ diff --git a/third_party/tzdb/America/Indiana/Indianapolis b/third_party/tzdb/America/Indiana/Indianapolis new file mode 100644 index 00000000..a84b6e99 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Indianapolis differ diff --git a/third_party/tzdb/America/Indiana/Knox b/third_party/tzdb/America/Indiana/Knox new file mode 100644 index 00000000..025d132d Binary files /dev/null and b/third_party/tzdb/America/Indiana/Knox differ diff --git a/third_party/tzdb/America/Indiana/Marengo b/third_party/tzdb/America/Indiana/Marengo new file mode 100644 index 00000000..677bbff6 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Marengo differ diff --git a/third_party/tzdb/America/Indiana/Petersburg b/third_party/tzdb/America/Indiana/Petersburg new file mode 100644 index 00000000..3082de00 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Petersburg differ diff --git a/third_party/tzdb/America/Indiana/Tell_City b/third_party/tzdb/America/Indiana/Tell_City new file mode 100644 index 00000000..103c5cb3 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Tell_City differ diff --git a/third_party/tzdb/America/Indiana/Vevay b/third_party/tzdb/America/Indiana/Vevay new file mode 100644 index 00000000..315b4c45 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Vevay differ diff --git a/third_party/tzdb/America/Indiana/Vincennes b/third_party/tzdb/America/Indiana/Vincennes new file mode 100644 index 00000000..35a24133 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Vincennes differ diff --git a/third_party/tzdb/America/Indiana/Winamac b/third_party/tzdb/America/Indiana/Winamac new file mode 100644 index 00000000..6d4e1937 Binary files /dev/null and b/third_party/tzdb/America/Indiana/Winamac differ diff --git a/third_party/tzdb/America/Inuvik b/third_party/tzdb/America/Inuvik new file mode 100644 index 00000000..04c2df45 Binary files /dev/null and b/third_party/tzdb/America/Inuvik differ diff --git a/third_party/tzdb/America/Iqaluit b/third_party/tzdb/America/Iqaluit new file mode 100644 index 00000000..0b47b903 Binary files /dev/null and b/third_party/tzdb/America/Iqaluit differ diff --git a/third_party/tzdb/America/Jamaica b/third_party/tzdb/America/Jamaica new file mode 100644 index 00000000..2a9b7fd5 Binary files /dev/null and b/third_party/tzdb/America/Jamaica differ diff --git a/third_party/tzdb/America/Juneau b/third_party/tzdb/America/Juneau new file mode 100644 index 00000000..451f3490 Binary files /dev/null and b/third_party/tzdb/America/Juneau differ diff --git a/third_party/tzdb/America/Kentucky/Louisville b/third_party/tzdb/America/Kentucky/Louisville new file mode 100644 index 00000000..3a335b37 Binary files /dev/null and b/third_party/tzdb/America/Kentucky/Louisville differ diff --git a/third_party/tzdb/America/Kentucky/Monticello b/third_party/tzdb/America/Kentucky/Monticello new file mode 100644 index 00000000..576f16bb Binary files /dev/null and b/third_party/tzdb/America/Kentucky/Monticello differ diff --git a/third_party/tzdb/America/Kralendijk b/third_party/tzdb/America/Kralendijk new file mode 100644 index 00000000..f7ab6efc Binary files /dev/null and b/third_party/tzdb/America/Kralendijk differ diff --git a/third_party/tzdb/America/La_Paz b/third_party/tzdb/America/La_Paz new file mode 100644 index 00000000..374586ea Binary files /dev/null and b/third_party/tzdb/America/La_Paz differ diff --git a/third_party/tzdb/America/Lima b/third_party/tzdb/America/Lima new file mode 100644 index 00000000..c13bb6be Binary files /dev/null and b/third_party/tzdb/America/Lima differ diff --git a/third_party/tzdb/America/Los_Angeles b/third_party/tzdb/America/Los_Angeles new file mode 100644 index 00000000..610e7af5 Binary files /dev/null and b/third_party/tzdb/America/Los_Angeles differ diff --git a/third_party/tzdb/America/Lower_Princes b/third_party/tzdb/America/Lower_Princes new file mode 100644 index 00000000..f7ab6efc Binary files /dev/null and b/third_party/tzdb/America/Lower_Princes differ diff --git a/third_party/tzdb/America/Maceio b/third_party/tzdb/America/Maceio new file mode 100644 index 00000000..437a4731 Binary files /dev/null and b/third_party/tzdb/America/Maceio differ diff --git a/third_party/tzdb/America/Managua b/third_party/tzdb/America/Managua new file mode 100644 index 00000000..e0242bff Binary files /dev/null and b/third_party/tzdb/America/Managua differ diff --git a/third_party/tzdb/America/Manaus b/third_party/tzdb/America/Manaus new file mode 100644 index 00000000..2708baea Binary files /dev/null and b/third_party/tzdb/America/Manaus differ diff --git a/third_party/tzdb/America/Marigot b/third_party/tzdb/America/Marigot new file mode 100644 index 00000000..697cf5bc Binary files /dev/null and b/third_party/tzdb/America/Marigot differ diff --git a/third_party/tzdb/America/Martinique b/third_party/tzdb/America/Martinique new file mode 100644 index 00000000..8df43dcf Binary files /dev/null and b/third_party/tzdb/America/Martinique differ diff --git a/third_party/tzdb/America/Matamoros b/third_party/tzdb/America/Matamoros new file mode 100644 index 00000000..bbe04e86 Binary files /dev/null and b/third_party/tzdb/America/Matamoros differ diff --git a/third_party/tzdb/America/Mazatlan b/third_party/tzdb/America/Mazatlan new file mode 100644 index 00000000..386616a5 Binary files /dev/null and b/third_party/tzdb/America/Mazatlan differ diff --git a/third_party/tzdb/America/Menominee b/third_party/tzdb/America/Menominee new file mode 100644 index 00000000..31461386 Binary files /dev/null and b/third_party/tzdb/America/Menominee differ diff --git a/third_party/tzdb/America/Merida b/third_party/tzdb/America/Merida new file mode 100644 index 00000000..c4b9b4e8 Binary files /dev/null and b/third_party/tzdb/America/Merida differ diff --git a/third_party/tzdb/America/Metlakatla b/third_party/tzdb/America/Metlakatla new file mode 100644 index 00000000..1e94be3d Binary files /dev/null and b/third_party/tzdb/America/Metlakatla differ diff --git a/third_party/tzdb/America/Mexico_City b/third_party/tzdb/America/Mexico_City new file mode 100644 index 00000000..ad70cf3e Binary files /dev/null and b/third_party/tzdb/America/Mexico_City differ diff --git a/third_party/tzdb/America/Miquelon b/third_party/tzdb/America/Miquelon new file mode 100644 index 00000000..f780ea99 Binary files /dev/null and b/third_party/tzdb/America/Miquelon differ diff --git a/third_party/tzdb/America/Moncton b/third_party/tzdb/America/Moncton new file mode 100644 index 00000000..9df8d0f2 Binary files /dev/null and b/third_party/tzdb/America/Moncton differ diff --git a/third_party/tzdb/America/Monterrey b/third_party/tzdb/America/Monterrey new file mode 100644 index 00000000..2d7993a0 Binary files /dev/null and b/third_party/tzdb/America/Monterrey differ diff --git a/third_party/tzdb/America/Montevideo b/third_party/tzdb/America/Montevideo new file mode 100644 index 00000000..e7bbfbb8 Binary files /dev/null and b/third_party/tzdb/America/Montevideo differ diff --git a/third_party/tzdb/America/Montreal b/third_party/tzdb/America/Montreal new file mode 100644 index 00000000..17013733 Binary files /dev/null and b/third_party/tzdb/America/Montreal differ diff --git a/third_party/tzdb/America/Montserrat b/third_party/tzdb/America/Montserrat new file mode 100644 index 00000000..830c4403 Binary files /dev/null and b/third_party/tzdb/America/Montserrat differ diff --git a/third_party/tzdb/America/Nassau b/third_party/tzdb/America/Nassau new file mode 100644 index 00000000..d807a61d Binary files /dev/null and b/third_party/tzdb/America/Nassau differ diff --git a/third_party/tzdb/America/New_York b/third_party/tzdb/America/New_York new file mode 100644 index 00000000..a8b9ab19 Binary files /dev/null and b/third_party/tzdb/America/New_York differ diff --git a/third_party/tzdb/America/Nipigon b/third_party/tzdb/America/Nipigon new file mode 100644 index 00000000..17013733 Binary files /dev/null and b/third_party/tzdb/America/Nipigon differ diff --git a/third_party/tzdb/America/Nome b/third_party/tzdb/America/Nome new file mode 100644 index 00000000..10998df3 Binary files /dev/null and b/third_party/tzdb/America/Nome differ diff --git a/third_party/tzdb/America/Noronha b/third_party/tzdb/America/Noronha new file mode 100644 index 00000000..73b4b336 Binary files /dev/null and b/third_party/tzdb/America/Noronha differ diff --git a/third_party/tzdb/America/North_Dakota/Beulah b/third_party/tzdb/America/North_Dakota/Beulah new file mode 100644 index 00000000..33e317e2 Binary files /dev/null and b/third_party/tzdb/America/North_Dakota/Beulah differ diff --git a/third_party/tzdb/America/North_Dakota/Center b/third_party/tzdb/America/North_Dakota/Center new file mode 100644 index 00000000..17fe13bc Binary files /dev/null and b/third_party/tzdb/America/North_Dakota/Center differ diff --git a/third_party/tzdb/America/North_Dakota/New_Salem b/third_party/tzdb/America/North_Dakota/New_Salem new file mode 100644 index 00000000..12dbe801 Binary files /dev/null and b/third_party/tzdb/America/North_Dakota/New_Salem differ diff --git a/third_party/tzdb/America/Nuuk b/third_party/tzdb/America/Nuuk new file mode 100644 index 00000000..29958cf1 Binary files /dev/null and b/third_party/tzdb/America/Nuuk differ diff --git a/third_party/tzdb/America/Ojinaga b/third_party/tzdb/America/Ojinaga new file mode 100644 index 00000000..45118a4f Binary files /dev/null and b/third_party/tzdb/America/Ojinaga differ diff --git a/third_party/tzdb/America/Panama b/third_party/tzdb/America/Panama new file mode 100644 index 00000000..9964b9a3 Binary files /dev/null and b/third_party/tzdb/America/Panama differ diff --git a/third_party/tzdb/America/Pangnirtung b/third_party/tzdb/America/Pangnirtung new file mode 100644 index 00000000..0b47b903 Binary files /dev/null and b/third_party/tzdb/America/Pangnirtung differ diff --git a/third_party/tzdb/America/Paramaribo b/third_party/tzdb/America/Paramaribo new file mode 100644 index 00000000..f1b82b4f Binary files /dev/null and b/third_party/tzdb/America/Paramaribo differ diff --git a/third_party/tzdb/America/Phoenix b/third_party/tzdb/America/Phoenix new file mode 100644 index 00000000..ab37e845 Binary files /dev/null and b/third_party/tzdb/America/Phoenix differ diff --git a/third_party/tzdb/America/Port-au-Prince b/third_party/tzdb/America/Port-au-Prince new file mode 100644 index 00000000..287f1439 Binary files /dev/null and b/third_party/tzdb/America/Port-au-Prince differ diff --git a/third_party/tzdb/America/Port_of_Spain b/third_party/tzdb/America/Port_of_Spain new file mode 100644 index 00000000..697cf5bc Binary files /dev/null and b/third_party/tzdb/America/Port_of_Spain differ diff --git a/third_party/tzdb/America/Porto_Acre b/third_party/tzdb/America/Porto_Acre new file mode 100644 index 00000000..cdda168c Binary files /dev/null and b/third_party/tzdb/America/Porto_Acre differ diff --git a/third_party/tzdb/America/Porto_Velho b/third_party/tzdb/America/Porto_Velho new file mode 100644 index 00000000..e0039860 Binary files /dev/null and b/third_party/tzdb/America/Porto_Velho differ diff --git a/third_party/tzdb/America/Puerto_Rico b/third_party/tzdb/America/Puerto_Rico new file mode 100644 index 00000000..a662a571 Binary files /dev/null and b/third_party/tzdb/America/Puerto_Rico differ diff --git a/third_party/tzdb/America/Punta_Arenas b/third_party/tzdb/America/Punta_Arenas new file mode 100644 index 00000000..411a839b Binary files /dev/null and b/third_party/tzdb/America/Punta_Arenas differ diff --git a/third_party/tzdb/America/Rainy_River b/third_party/tzdb/America/Rainy_River new file mode 100644 index 00000000..ac40299f Binary files /dev/null and b/third_party/tzdb/America/Rainy_River differ diff --git a/third_party/tzdb/America/Rankin_Inlet b/third_party/tzdb/America/Rankin_Inlet new file mode 100644 index 00000000..e2714921 Binary files /dev/null and b/third_party/tzdb/America/Rankin_Inlet differ diff --git a/third_party/tzdb/America/Recife b/third_party/tzdb/America/Recife new file mode 100644 index 00000000..5bf6c211 Binary files /dev/null and b/third_party/tzdb/America/Recife differ diff --git a/third_party/tzdb/America/Regina b/third_party/tzdb/America/Regina new file mode 100644 index 00000000..20c9c84d Binary files /dev/null and b/third_party/tzdb/America/Regina differ diff --git a/third_party/tzdb/America/Resolute b/third_party/tzdb/America/Resolute new file mode 100644 index 00000000..19668900 Binary files /dev/null and b/third_party/tzdb/America/Resolute differ diff --git a/third_party/tzdb/America/Rio_Branco b/third_party/tzdb/America/Rio_Branco new file mode 100644 index 00000000..cdda168c Binary files /dev/null and b/third_party/tzdb/America/Rio_Branco differ diff --git a/third_party/tzdb/America/Santa_Isabel b/third_party/tzdb/America/Santa_Isabel new file mode 100644 index 00000000..cf298188 Binary files /dev/null and b/third_party/tzdb/America/Santa_Isabel differ diff --git a/third_party/tzdb/America/Santarem b/third_party/tzdb/America/Santarem new file mode 100644 index 00000000..001638c2 Binary files /dev/null and b/third_party/tzdb/America/Santarem differ diff --git a/third_party/tzdb/America/Santiago b/third_party/tzdb/America/Santiago new file mode 100644 index 00000000..010c6bd0 Binary files /dev/null and b/third_party/tzdb/America/Santiago differ diff --git a/third_party/tzdb/America/Santo_Domingo b/third_party/tzdb/America/Santo_Domingo new file mode 100644 index 00000000..4fe36fd4 Binary files /dev/null and b/third_party/tzdb/America/Santo_Domingo differ diff --git a/third_party/tzdb/America/Sao_Paulo b/third_party/tzdb/America/Sao_Paulo new file mode 100644 index 00000000..67935ff4 Binary files /dev/null and b/third_party/tzdb/America/Sao_Paulo differ diff --git a/third_party/tzdb/America/Scoresbysund b/third_party/tzdb/America/Scoresbysund new file mode 100644 index 00000000..9bf411ef Binary files /dev/null and b/third_party/tzdb/America/Scoresbysund differ diff --git a/third_party/tzdb/America/Shiprock b/third_party/tzdb/America/Shiprock new file mode 100644 index 00000000..abb2b974 Binary files /dev/null and b/third_party/tzdb/America/Shiprock differ diff --git a/third_party/tzdb/America/Sitka b/third_party/tzdb/America/Sitka new file mode 100644 index 00000000..31f70613 Binary files /dev/null and b/third_party/tzdb/America/Sitka differ diff --git a/third_party/tzdb/America/St_Barthelemy b/third_party/tzdb/America/St_Barthelemy new file mode 100644 index 00000000..697cf5bc Binary files /dev/null and b/third_party/tzdb/America/St_Barthelemy differ diff --git a/third_party/tzdb/America/St_Johns b/third_party/tzdb/America/St_Johns new file mode 100644 index 00000000..65a5b0c7 Binary files /dev/null and b/third_party/tzdb/America/St_Johns differ diff --git a/third_party/tzdb/America/St_Kitts b/third_party/tzdb/America/St_Kitts new file mode 100644 index 00000000..d88131fd Binary files /dev/null and b/third_party/tzdb/America/St_Kitts differ diff --git a/third_party/tzdb/America/St_Lucia b/third_party/tzdb/America/St_Lucia new file mode 100644 index 00000000..341d4872 Binary files /dev/null and b/third_party/tzdb/America/St_Lucia differ diff --git a/third_party/tzdb/America/St_Thomas b/third_party/tzdb/America/St_Thomas new file mode 100644 index 00000000..a18fe7be Binary files /dev/null and b/third_party/tzdb/America/St_Thomas differ diff --git a/third_party/tzdb/America/St_Vincent b/third_party/tzdb/America/St_Vincent new file mode 100644 index 00000000..67b84f3d Binary files /dev/null and b/third_party/tzdb/America/St_Vincent differ diff --git a/third_party/tzdb/America/Swift_Current b/third_party/tzdb/America/Swift_Current new file mode 100644 index 00000000..8e9ef255 Binary files /dev/null and b/third_party/tzdb/America/Swift_Current differ diff --git a/third_party/tzdb/America/Tegucigalpa b/third_party/tzdb/America/Tegucigalpa new file mode 100644 index 00000000..2adacb2e Binary files /dev/null and b/third_party/tzdb/America/Tegucigalpa differ diff --git a/third_party/tzdb/America/Thule b/third_party/tzdb/America/Thule new file mode 100644 index 00000000..6f802f1c Binary files /dev/null and b/third_party/tzdb/America/Thule differ diff --git a/third_party/tzdb/America/Thunder_Bay b/third_party/tzdb/America/Thunder_Bay new file mode 100644 index 00000000..17013733 Binary files /dev/null and b/third_party/tzdb/America/Thunder_Bay differ diff --git a/third_party/tzdb/America/Tijuana b/third_party/tzdb/America/Tijuana new file mode 100644 index 00000000..cf298188 Binary files /dev/null and b/third_party/tzdb/America/Tijuana differ diff --git a/third_party/tzdb/America/Toronto b/third_party/tzdb/America/Toronto new file mode 100644 index 00000000..17013733 Binary files /dev/null and b/third_party/tzdb/America/Toronto differ diff --git a/third_party/tzdb/America/Tortola b/third_party/tzdb/America/Tortola new file mode 100644 index 00000000..a33e6208 Binary files /dev/null and b/third_party/tzdb/America/Tortola differ diff --git a/third_party/tzdb/America/Vancouver b/third_party/tzdb/America/Vancouver new file mode 100644 index 00000000..b229820a Binary files /dev/null and b/third_party/tzdb/America/Vancouver differ diff --git a/third_party/tzdb/America/Virgin b/third_party/tzdb/America/Virgin new file mode 100644 index 00000000..a18fe7be Binary files /dev/null and b/third_party/tzdb/America/Virgin differ diff --git a/third_party/tzdb/America/Whitehorse b/third_party/tzdb/America/Whitehorse new file mode 100644 index 00000000..318c4a8e Binary files /dev/null and b/third_party/tzdb/America/Whitehorse differ diff --git a/third_party/tzdb/America/Winnipeg b/third_party/tzdb/America/Winnipeg new file mode 100644 index 00000000..ac40299f Binary files /dev/null and b/third_party/tzdb/America/Winnipeg differ diff --git a/third_party/tzdb/America/Yakutat b/third_party/tzdb/America/Yakutat new file mode 100644 index 00000000..da209f9f Binary files /dev/null and b/third_party/tzdb/America/Yakutat differ diff --git a/third_party/tzdb/America/Yellowknife b/third_party/tzdb/America/Yellowknife new file mode 100644 index 00000000..cd78a6f8 Binary files /dev/null and b/third_party/tzdb/America/Yellowknife differ diff --git a/third_party/tzdb/Antarctica/Casey b/third_party/tzdb/Antarctica/Casey new file mode 100644 index 00000000..586a7653 Binary files /dev/null and b/third_party/tzdb/Antarctica/Casey differ diff --git a/third_party/tzdb/Antarctica/Davis b/third_party/tzdb/Antarctica/Davis new file mode 100644 index 00000000..d4d47b24 Binary files /dev/null and b/third_party/tzdb/Antarctica/Davis differ diff --git a/third_party/tzdb/Antarctica/DumontDUrville b/third_party/tzdb/Antarctica/DumontDUrville new file mode 100644 index 00000000..ed082b4d Binary files /dev/null and b/third_party/tzdb/Antarctica/DumontDUrville differ diff --git a/third_party/tzdb/Antarctica/Macquarie b/third_party/tzdb/Antarctica/Macquarie new file mode 100644 index 00000000..9e7cc687 Binary files /dev/null and b/third_party/tzdb/Antarctica/Macquarie differ diff --git a/third_party/tzdb/Antarctica/Mawson b/third_party/tzdb/Antarctica/Mawson new file mode 100644 index 00000000..6d93f6e1 Binary files /dev/null and b/third_party/tzdb/Antarctica/Mawson differ diff --git a/third_party/tzdb/Antarctica/McMurdo b/third_party/tzdb/Antarctica/McMurdo new file mode 100644 index 00000000..d4ecc083 Binary files /dev/null and b/third_party/tzdb/Antarctica/McMurdo differ diff --git a/third_party/tzdb/Antarctica/Palmer b/third_party/tzdb/Antarctica/Palmer new file mode 100644 index 00000000..9c8fd317 Binary files /dev/null and b/third_party/tzdb/Antarctica/Palmer differ diff --git a/third_party/tzdb/Antarctica/Rothera b/third_party/tzdb/Antarctica/Rothera new file mode 100644 index 00000000..241cc44d Binary files /dev/null and b/third_party/tzdb/Antarctica/Rothera differ diff --git a/third_party/tzdb/Antarctica/Syowa b/third_party/tzdb/Antarctica/Syowa new file mode 100644 index 00000000..4c0810a4 Binary files /dev/null and b/third_party/tzdb/Antarctica/Syowa differ diff --git a/third_party/tzdb/Antarctica/Troll b/third_party/tzdb/Antarctica/Troll new file mode 100644 index 00000000..a1dcea14 Binary files /dev/null and b/third_party/tzdb/Antarctica/Troll differ diff --git a/third_party/tzdb/Antarctica/Vostok b/third_party/tzdb/Antarctica/Vostok new file mode 100644 index 00000000..016e06b1 Binary files /dev/null and b/third_party/tzdb/Antarctica/Vostok differ diff --git a/third_party/tzdb/Arctic/Longyearbyen b/third_party/tzdb/Arctic/Longyearbyen new file mode 100644 index 00000000..15a34c3c Binary files /dev/null and b/third_party/tzdb/Arctic/Longyearbyen differ diff --git a/third_party/tzdb/Asia/Aden b/third_party/tzdb/Asia/Aden new file mode 100644 index 00000000..9df93b48 Binary files /dev/null and b/third_party/tzdb/Asia/Aden differ diff --git a/third_party/tzdb/Asia/Almaty b/third_party/tzdb/Asia/Almaty new file mode 100644 index 00000000..855abbd6 Binary files /dev/null and b/third_party/tzdb/Asia/Almaty differ diff --git a/third_party/tzdb/Asia/Amman b/third_party/tzdb/Asia/Amman new file mode 100644 index 00000000..0a8e350a Binary files /dev/null and b/third_party/tzdb/Asia/Amman differ diff --git a/third_party/tzdb/Asia/Anadyr b/third_party/tzdb/Asia/Anadyr new file mode 100644 index 00000000..35c531c0 Binary files /dev/null and b/third_party/tzdb/Asia/Anadyr differ diff --git a/third_party/tzdb/Asia/Aqtau b/third_party/tzdb/Asia/Aqtau new file mode 100644 index 00000000..0e1c16d3 Binary files /dev/null and b/third_party/tzdb/Asia/Aqtau differ diff --git a/third_party/tzdb/Asia/Aqtobe b/third_party/tzdb/Asia/Aqtobe new file mode 100644 index 00000000..3b5d6eb4 Binary files /dev/null and b/third_party/tzdb/Asia/Aqtobe differ diff --git a/third_party/tzdb/Asia/Ashgabat b/third_party/tzdb/Asia/Ashgabat new file mode 100644 index 00000000..2bd1cb3d Binary files /dev/null and b/third_party/tzdb/Asia/Ashgabat differ diff --git a/third_party/tzdb/Asia/Atyrau b/third_party/tzdb/Asia/Atyrau new file mode 100644 index 00000000..e7ea9c54 Binary files /dev/null and b/third_party/tzdb/Asia/Atyrau differ diff --git a/third_party/tzdb/Asia/Baghdad b/third_party/tzdb/Asia/Baghdad new file mode 100644 index 00000000..c0e60723 Binary files /dev/null and b/third_party/tzdb/Asia/Baghdad differ diff --git a/third_party/tzdb/Asia/Bahrain b/third_party/tzdb/Asia/Bahrain new file mode 100644 index 00000000..8ba26b90 Binary files /dev/null and b/third_party/tzdb/Asia/Bahrain differ diff --git a/third_party/tzdb/Asia/Baku b/third_party/tzdb/Asia/Baku new file mode 100644 index 00000000..ae0ce4e7 Binary files /dev/null and b/third_party/tzdb/Asia/Baku differ diff --git a/third_party/tzdb/Asia/Bangkok b/third_party/tzdb/Asia/Bangkok new file mode 100644 index 00000000..fa799db3 Binary files /dev/null and b/third_party/tzdb/Asia/Bangkok differ diff --git a/third_party/tzdb/Asia/Barnaul b/third_party/tzdb/Asia/Barnaul new file mode 100644 index 00000000..2f6b8101 Binary files /dev/null and b/third_party/tzdb/Asia/Barnaul differ diff --git a/third_party/tzdb/Asia/Beirut b/third_party/tzdb/Asia/Beirut new file mode 100644 index 00000000..fb266ede Binary files /dev/null and b/third_party/tzdb/Asia/Beirut differ diff --git a/third_party/tzdb/Asia/Bishkek b/third_party/tzdb/Asia/Bishkek new file mode 100644 index 00000000..547fd5e1 Binary files /dev/null and b/third_party/tzdb/Asia/Bishkek differ diff --git a/third_party/tzdb/Asia/Brunei b/third_party/tzdb/Asia/Brunei new file mode 100644 index 00000000..1ceecfb0 Binary files /dev/null and b/third_party/tzdb/Asia/Brunei differ diff --git a/third_party/tzdb/Asia/Chita b/third_party/tzdb/Asia/Chita new file mode 100644 index 00000000..75b3d7b3 Binary files /dev/null and b/third_party/tzdb/Asia/Chita differ diff --git a/third_party/tzdb/Asia/Chongqing b/third_party/tzdb/Asia/Chongqing new file mode 100644 index 00000000..91f6f8bc Binary files /dev/null and b/third_party/tzdb/Asia/Chongqing differ diff --git a/third_party/tzdb/Asia/Colombo b/third_party/tzdb/Asia/Colombo new file mode 100644 index 00000000..353fe2aa Binary files /dev/null and b/third_party/tzdb/Asia/Colombo differ diff --git a/third_party/tzdb/Asia/Damascus b/third_party/tzdb/Asia/Damascus new file mode 100644 index 00000000..afd956c8 Binary files /dev/null and b/third_party/tzdb/Asia/Damascus differ diff --git a/third_party/tzdb/Asia/Dhaka b/third_party/tzdb/Asia/Dhaka new file mode 100644 index 00000000..3cf597d8 Binary files /dev/null and b/third_party/tzdb/Asia/Dhaka differ diff --git a/third_party/tzdb/Asia/Dili b/third_party/tzdb/Asia/Dili new file mode 100644 index 00000000..4614e4fc Binary files /dev/null and b/third_party/tzdb/Asia/Dili differ diff --git a/third_party/tzdb/Asia/Dubai b/third_party/tzdb/Asia/Dubai new file mode 100644 index 00000000..b3ac791a Binary files /dev/null and b/third_party/tzdb/Asia/Dubai differ diff --git a/third_party/tzdb/Asia/Dushanbe b/third_party/tzdb/Asia/Dushanbe new file mode 100644 index 00000000..89e875be Binary files /dev/null and b/third_party/tzdb/Asia/Dushanbe differ diff --git a/third_party/tzdb/Asia/Famagusta b/third_party/tzdb/Asia/Famagusta new file mode 100644 index 00000000..653b146a Binary files /dev/null and b/third_party/tzdb/Asia/Famagusta differ diff --git a/third_party/tzdb/Asia/Gaza b/third_party/tzdb/Asia/Gaza new file mode 100644 index 00000000..dd5781e8 Binary files /dev/null and b/third_party/tzdb/Asia/Gaza differ diff --git a/third_party/tzdb/Asia/Harbin b/third_party/tzdb/Asia/Harbin new file mode 100644 index 00000000..91f6f8bc Binary files /dev/null and b/third_party/tzdb/Asia/Harbin differ diff --git a/third_party/tzdb/Asia/Hebron b/third_party/tzdb/Asia/Hebron new file mode 100644 index 00000000..a64fc9e7 Binary files /dev/null and b/third_party/tzdb/Asia/Hebron differ diff --git a/third_party/tzdb/Asia/Ho_Chi_Minh b/third_party/tzdb/Asia/Ho_Chi_Minh new file mode 100644 index 00000000..9c45ed99 Binary files /dev/null and b/third_party/tzdb/Asia/Ho_Chi_Minh differ diff --git a/third_party/tzdb/Asia/Hong_Kong b/third_party/tzdb/Asia/Hong_Kong new file mode 100644 index 00000000..f9f7b134 Binary files /dev/null and b/third_party/tzdb/Asia/Hong_Kong differ diff --git a/third_party/tzdb/Asia/Hovd b/third_party/tzdb/Asia/Hovd new file mode 100644 index 00000000..8b9abca3 Binary files /dev/null and b/third_party/tzdb/Asia/Hovd differ diff --git a/third_party/tzdb/Asia/Irkutsk b/third_party/tzdb/Asia/Irkutsk new file mode 100644 index 00000000..e74a4d3f Binary files /dev/null and b/third_party/tzdb/Asia/Irkutsk differ diff --git a/third_party/tzdb/Asia/Istanbul b/third_party/tzdb/Asia/Istanbul new file mode 100644 index 00000000..7c2336dd Binary files /dev/null and b/third_party/tzdb/Asia/Istanbul differ diff --git a/third_party/tzdb/Asia/Jakarta b/third_party/tzdb/Asia/Jakarta new file mode 100644 index 00000000..ec4bd574 Binary files /dev/null and b/third_party/tzdb/Asia/Jakarta differ diff --git a/third_party/tzdb/Asia/Jayapura b/third_party/tzdb/Asia/Jayapura new file mode 100644 index 00000000..3002c820 Binary files /dev/null and b/third_party/tzdb/Asia/Jayapura differ diff --git a/third_party/tzdb/Asia/Jerusalem b/third_party/tzdb/Asia/Jerusalem new file mode 100644 index 00000000..1ebd0664 Binary files /dev/null and b/third_party/tzdb/Asia/Jerusalem differ diff --git a/third_party/tzdb/Asia/Kabul b/third_party/tzdb/Asia/Kabul new file mode 100644 index 00000000..661efc83 Binary files /dev/null and b/third_party/tzdb/Asia/Kabul differ diff --git a/third_party/tzdb/Asia/Kamchatka b/third_party/tzdb/Asia/Kamchatka new file mode 100644 index 00000000..99776f51 Binary files /dev/null and b/third_party/tzdb/Asia/Kamchatka differ diff --git a/third_party/tzdb/Asia/Karachi b/third_party/tzdb/Asia/Karachi new file mode 100644 index 00000000..ba65c0e8 Binary files /dev/null and b/third_party/tzdb/Asia/Karachi differ diff --git a/third_party/tzdb/Asia/Kashgar b/third_party/tzdb/Asia/Kashgar new file mode 100644 index 00000000..62bdcac1 Binary files /dev/null and b/third_party/tzdb/Asia/Kashgar differ diff --git a/third_party/tzdb/Asia/Kathmandu b/third_party/tzdb/Asia/Kathmandu new file mode 100644 index 00000000..751cf4a8 Binary files /dev/null and b/third_party/tzdb/Asia/Kathmandu differ diff --git a/third_party/tzdb/Asia/Khandyga b/third_party/tzdb/Asia/Khandyga new file mode 100644 index 00000000..7cdc99a9 Binary files /dev/null and b/third_party/tzdb/Asia/Khandyga differ diff --git a/third_party/tzdb/Asia/Kolkata b/third_party/tzdb/Asia/Kolkata new file mode 100644 index 00000000..0014046d Binary files /dev/null and b/third_party/tzdb/Asia/Kolkata differ diff --git a/third_party/tzdb/Asia/Krasnoyarsk b/third_party/tzdb/Asia/Krasnoyarsk new file mode 100644 index 00000000..4c27b2de Binary files /dev/null and b/third_party/tzdb/Asia/Krasnoyarsk differ diff --git a/third_party/tzdb/Asia/Kuala_Lumpur b/third_party/tzdb/Asia/Kuala_Lumpur new file mode 100644 index 00000000..6abc76c0 Binary files /dev/null and b/third_party/tzdb/Asia/Kuala_Lumpur differ diff --git a/third_party/tzdb/Asia/Kuching b/third_party/tzdb/Asia/Kuching new file mode 100644 index 00000000..098c6a0b Binary files /dev/null and b/third_party/tzdb/Asia/Kuching differ diff --git a/third_party/tzdb/Asia/Kuwait b/third_party/tzdb/Asia/Kuwait new file mode 100644 index 00000000..9739667e Binary files /dev/null and b/third_party/tzdb/Asia/Kuwait differ diff --git a/third_party/tzdb/Asia/Macau b/third_party/tzdb/Asia/Macau new file mode 100644 index 00000000..cac65063 Binary files /dev/null and b/third_party/tzdb/Asia/Macau differ diff --git a/third_party/tzdb/Asia/Magadan b/third_party/tzdb/Asia/Magadan new file mode 100644 index 00000000..70c198ba Binary files /dev/null and b/third_party/tzdb/Asia/Magadan differ diff --git a/third_party/tzdb/Asia/Makassar b/third_party/tzdb/Asia/Makassar new file mode 100644 index 00000000..556ba866 Binary files /dev/null and b/third_party/tzdb/Asia/Makassar differ diff --git a/third_party/tzdb/Asia/Manila b/third_party/tzdb/Asia/Manila new file mode 100644 index 00000000..168f7209 Binary files /dev/null and b/third_party/tzdb/Asia/Manila differ diff --git a/third_party/tzdb/Asia/Muscat b/third_party/tzdb/Asia/Muscat new file mode 100644 index 00000000..872fd42a Binary files /dev/null and b/third_party/tzdb/Asia/Muscat differ diff --git a/third_party/tzdb/Asia/Nicosia b/third_party/tzdb/Asia/Nicosia new file mode 100644 index 00000000..f7f10ab7 Binary files /dev/null and b/third_party/tzdb/Asia/Nicosia differ diff --git a/third_party/tzdb/Asia/Novokuznetsk b/third_party/tzdb/Asia/Novokuznetsk new file mode 100644 index 00000000..a5e1b796 Binary files /dev/null and b/third_party/tzdb/Asia/Novokuznetsk differ diff --git a/third_party/tzdb/Asia/Novosibirsk b/third_party/tzdb/Asia/Novosibirsk new file mode 100644 index 00000000..4ac7582a Binary files /dev/null and b/third_party/tzdb/Asia/Novosibirsk differ diff --git a/third_party/tzdb/Asia/Omsk b/third_party/tzdb/Asia/Omsk new file mode 100644 index 00000000..16c5f3cf Binary files /dev/null and b/third_party/tzdb/Asia/Omsk differ diff --git a/third_party/tzdb/Asia/Oral b/third_party/tzdb/Asia/Oral new file mode 100644 index 00000000..3b9ecacf Binary files /dev/null and b/third_party/tzdb/Asia/Oral differ diff --git a/third_party/tzdb/Asia/Phnom_Penh b/third_party/tzdb/Asia/Phnom_Penh new file mode 100644 index 00000000..cdf66f67 Binary files /dev/null and b/third_party/tzdb/Asia/Phnom_Penh differ diff --git a/third_party/tzdb/Asia/Pontianak b/third_party/tzdb/Asia/Pontianak new file mode 100644 index 00000000..12ce24cb Binary files /dev/null and b/third_party/tzdb/Asia/Pontianak differ diff --git a/third_party/tzdb/Asia/Pyongyang b/third_party/tzdb/Asia/Pyongyang new file mode 100644 index 00000000..7ad7e0b2 Binary files /dev/null and b/third_party/tzdb/Asia/Pyongyang differ diff --git a/third_party/tzdb/Asia/Qatar b/third_party/tzdb/Asia/Qatar new file mode 100644 index 00000000..098997e7 Binary files /dev/null and b/third_party/tzdb/Asia/Qatar differ diff --git a/third_party/tzdb/Asia/Qostanay b/third_party/tzdb/Asia/Qostanay new file mode 100644 index 00000000..2ee9ef7e Binary files /dev/null and b/third_party/tzdb/Asia/Qostanay differ diff --git a/third_party/tzdb/Asia/Qyzylorda b/third_party/tzdb/Asia/Qyzylorda new file mode 100644 index 00000000..27b522a7 Binary files /dev/null and b/third_party/tzdb/Asia/Qyzylorda differ diff --git a/third_party/tzdb/Asia/Riyadh b/third_party/tzdb/Asia/Riyadh new file mode 100644 index 00000000..8c806247 Binary files /dev/null and b/third_party/tzdb/Asia/Riyadh differ diff --git a/third_party/tzdb/Asia/Sakhalin b/third_party/tzdb/Asia/Sakhalin new file mode 100644 index 00000000..beb77b44 Binary files /dev/null and b/third_party/tzdb/Asia/Sakhalin differ diff --git a/third_party/tzdb/Asia/Samarkand b/third_party/tzdb/Asia/Samarkand new file mode 100644 index 00000000..8a93767b Binary files /dev/null and b/third_party/tzdb/Asia/Samarkand differ diff --git a/third_party/tzdb/Asia/Seoul b/third_party/tzdb/Asia/Seoul new file mode 100644 index 00000000..96199e73 Binary files /dev/null and b/third_party/tzdb/Asia/Seoul differ diff --git a/third_party/tzdb/Asia/Shanghai b/third_party/tzdb/Asia/Shanghai new file mode 100644 index 00000000..91f6f8bc Binary files /dev/null and b/third_party/tzdb/Asia/Shanghai differ diff --git a/third_party/tzdb/Asia/Singapore b/third_party/tzdb/Asia/Singapore new file mode 100644 index 00000000..3d9f191e Binary files /dev/null and b/third_party/tzdb/Asia/Singapore differ diff --git a/third_party/tzdb/Asia/Srednekolymsk b/third_party/tzdb/Asia/Srednekolymsk new file mode 100644 index 00000000..d21e7eee Binary files /dev/null and b/third_party/tzdb/Asia/Srednekolymsk differ diff --git a/third_party/tzdb/Asia/Taipei b/third_party/tzdb/Asia/Taipei new file mode 100644 index 00000000..24c43444 Binary files /dev/null and b/third_party/tzdb/Asia/Taipei differ diff --git a/third_party/tzdb/Asia/Tashkent b/third_party/tzdb/Asia/Tashkent new file mode 100644 index 00000000..a9f6cd93 Binary files /dev/null and b/third_party/tzdb/Asia/Tashkent differ diff --git a/third_party/tzdb/Asia/Tbilisi b/third_party/tzdb/Asia/Tbilisi new file mode 100644 index 00000000..3b131bb1 Binary files /dev/null and b/third_party/tzdb/Asia/Tbilisi differ diff --git a/third_party/tzdb/Asia/Tehran b/third_party/tzdb/Asia/Tehran new file mode 100644 index 00000000..78f28cc4 Binary files /dev/null and b/third_party/tzdb/Asia/Tehran differ diff --git a/third_party/tzdb/Asia/Tel_Aviv b/third_party/tzdb/Asia/Tel_Aviv new file mode 100644 index 00000000..1ebd0664 Binary files /dev/null and b/third_party/tzdb/Asia/Tel_Aviv differ diff --git a/third_party/tzdb/Asia/Thimphu b/third_party/tzdb/Asia/Thimphu new file mode 100644 index 00000000..95a9de96 Binary files /dev/null and b/third_party/tzdb/Asia/Thimphu differ diff --git a/third_party/tzdb/Asia/Tokyo b/third_party/tzdb/Asia/Tokyo new file mode 100644 index 00000000..26f4d34d Binary files /dev/null and b/third_party/tzdb/Asia/Tokyo differ diff --git a/third_party/tzdb/Asia/Tomsk b/third_party/tzdb/Asia/Tomsk new file mode 100644 index 00000000..a6e494a7 Binary files /dev/null and b/third_party/tzdb/Asia/Tomsk differ diff --git a/third_party/tzdb/Asia/Ulaanbaatar b/third_party/tzdb/Asia/Ulaanbaatar new file mode 100644 index 00000000..2aa5cc4b Binary files /dev/null and b/third_party/tzdb/Asia/Ulaanbaatar differ diff --git a/third_party/tzdb/Asia/Urumqi b/third_party/tzdb/Asia/Urumqi new file mode 100644 index 00000000..62bdcac1 Binary files /dev/null and b/third_party/tzdb/Asia/Urumqi differ diff --git a/third_party/tzdb/Asia/Ust-Nera b/third_party/tzdb/Asia/Ust-Nera new file mode 100644 index 00000000..d05726ab Binary files /dev/null and b/third_party/tzdb/Asia/Ust-Nera differ diff --git a/third_party/tzdb/Asia/Vientiane b/third_party/tzdb/Asia/Vientiane new file mode 100644 index 00000000..367292d6 Binary files /dev/null and b/third_party/tzdb/Asia/Vientiane differ diff --git a/third_party/tzdb/Asia/Vladivostok b/third_party/tzdb/Asia/Vladivostok new file mode 100644 index 00000000..274a10b4 Binary files /dev/null and b/third_party/tzdb/Asia/Vladivostok differ diff --git a/third_party/tzdb/Asia/Yakutsk b/third_party/tzdb/Asia/Yakutsk new file mode 100644 index 00000000..ae65a5f9 Binary files /dev/null and b/third_party/tzdb/Asia/Yakutsk differ diff --git a/third_party/tzdb/Asia/Yangon b/third_party/tzdb/Asia/Yangon new file mode 100644 index 00000000..eef37b42 Binary files /dev/null and b/third_party/tzdb/Asia/Yangon differ diff --git a/third_party/tzdb/Asia/Yekaterinburg b/third_party/tzdb/Asia/Yekaterinburg new file mode 100644 index 00000000..d4d19ccf Binary files /dev/null and b/third_party/tzdb/Asia/Yekaterinburg differ diff --git a/third_party/tzdb/Asia/Yerevan b/third_party/tzdb/Asia/Yerevan new file mode 100644 index 00000000..0d5f6853 Binary files /dev/null and b/third_party/tzdb/Asia/Yerevan differ diff --git a/third_party/tzdb/Atlantic/Azores b/third_party/tzdb/Atlantic/Azores new file mode 100644 index 00000000..dd2c235b Binary files /dev/null and b/third_party/tzdb/Atlantic/Azores differ diff --git a/third_party/tzdb/Atlantic/Bermuda b/third_party/tzdb/Atlantic/Bermuda new file mode 100644 index 00000000..527524ed Binary files /dev/null and b/third_party/tzdb/Atlantic/Bermuda differ diff --git a/third_party/tzdb/Atlantic/Canary b/third_party/tzdb/Atlantic/Canary new file mode 100644 index 00000000..f3192156 Binary files /dev/null and b/third_party/tzdb/Atlantic/Canary differ diff --git a/third_party/tzdb/Atlantic/Cape_Verde b/third_party/tzdb/Atlantic/Cape_Verde new file mode 100644 index 00000000..0d0d31a2 Binary files /dev/null and b/third_party/tzdb/Atlantic/Cape_Verde differ diff --git a/third_party/tzdb/Atlantic/Faroe b/third_party/tzdb/Atlantic/Faroe new file mode 100644 index 00000000..4dab7ef0 Binary files /dev/null and b/third_party/tzdb/Atlantic/Faroe differ diff --git a/third_party/tzdb/Atlantic/Jan_Mayen b/third_party/tzdb/Atlantic/Jan_Mayen new file mode 100644 index 00000000..15a34c3c Binary files /dev/null and b/third_party/tzdb/Atlantic/Jan_Mayen differ diff --git a/third_party/tzdb/Atlantic/Madeira b/third_party/tzdb/Atlantic/Madeira new file mode 100644 index 00000000..6725a0ff Binary files /dev/null and b/third_party/tzdb/Atlantic/Madeira differ diff --git a/third_party/tzdb/Atlantic/Reykjavik b/third_party/tzdb/Atlantic/Reykjavik new file mode 100644 index 00000000..10e0fc81 Binary files /dev/null and b/third_party/tzdb/Atlantic/Reykjavik differ diff --git a/third_party/tzdb/Atlantic/South_Georgia b/third_party/tzdb/Atlantic/South_Georgia new file mode 100644 index 00000000..a2b59a9d Binary files /dev/null and b/third_party/tzdb/Atlantic/South_Georgia differ diff --git a/third_party/tzdb/Atlantic/St_Helena b/third_party/tzdb/Atlantic/St_Helena new file mode 100644 index 00000000..05f3af47 Binary files /dev/null and b/third_party/tzdb/Atlantic/St_Helena differ diff --git a/third_party/tzdb/Atlantic/Stanley b/third_party/tzdb/Atlantic/Stanley new file mode 100644 index 00000000..1527d0e1 Binary files /dev/null and b/third_party/tzdb/Atlantic/Stanley differ diff --git a/third_party/tzdb/Australia/Adelaide b/third_party/tzdb/Australia/Adelaide new file mode 100644 index 00000000..f5dedca5 Binary files /dev/null and b/third_party/tzdb/Australia/Adelaide differ diff --git a/third_party/tzdb/Australia/Brisbane b/third_party/tzdb/Australia/Brisbane new file mode 100644 index 00000000..7ff9949f Binary files /dev/null and b/third_party/tzdb/Australia/Brisbane differ diff --git a/third_party/tzdb/Australia/Broken_Hill b/third_party/tzdb/Australia/Broken_Hill new file mode 100644 index 00000000..698c76e3 Binary files /dev/null and b/third_party/tzdb/Australia/Broken_Hill differ diff --git a/third_party/tzdb/Australia/Canberra b/third_party/tzdb/Australia/Canberra new file mode 100644 index 00000000..0aea4c3d Binary files /dev/null and b/third_party/tzdb/Australia/Canberra differ diff --git a/third_party/tzdb/Australia/Currie b/third_party/tzdb/Australia/Currie new file mode 100644 index 00000000..3adb8e1b Binary files /dev/null and b/third_party/tzdb/Australia/Currie differ diff --git a/third_party/tzdb/Australia/Darwin b/third_party/tzdb/Australia/Darwin new file mode 100644 index 00000000..74a30879 Binary files /dev/null and b/third_party/tzdb/Australia/Darwin differ diff --git a/third_party/tzdb/Australia/Eucla b/third_party/tzdb/Australia/Eucla new file mode 100644 index 00000000..1551e96c Binary files /dev/null and b/third_party/tzdb/Australia/Eucla differ diff --git a/third_party/tzdb/Australia/Hobart b/third_party/tzdb/Australia/Hobart new file mode 100644 index 00000000..3adb8e1b Binary files /dev/null and b/third_party/tzdb/Australia/Hobart differ diff --git a/third_party/tzdb/Australia/Lindeman b/third_party/tzdb/Australia/Lindeman new file mode 100644 index 00000000..4ee1825a Binary files /dev/null and b/third_party/tzdb/Australia/Lindeman differ diff --git a/third_party/tzdb/Australia/Lord_Howe b/third_party/tzdb/Australia/Lord_Howe new file mode 100644 index 00000000..069a95ad Binary files /dev/null and b/third_party/tzdb/Australia/Lord_Howe differ diff --git a/third_party/tzdb/Australia/Melbourne b/third_party/tzdb/Australia/Melbourne new file mode 100644 index 00000000..ee903f4b Binary files /dev/null and b/third_party/tzdb/Australia/Melbourne differ diff --git a/third_party/tzdb/Australia/Perth b/third_party/tzdb/Australia/Perth new file mode 100644 index 00000000..f8ddbdf2 Binary files /dev/null and b/third_party/tzdb/Australia/Perth differ diff --git a/third_party/tzdb/Australia/Sydney b/third_party/tzdb/Australia/Sydney new file mode 100644 index 00000000..0aea4c3d Binary files /dev/null and b/third_party/tzdb/Australia/Sydney differ diff --git a/third_party/tzdb/Australia/Yancowinna b/third_party/tzdb/Australia/Yancowinna new file mode 100644 index 00000000..698c76e3 Binary files /dev/null and b/third_party/tzdb/Australia/Yancowinna differ diff --git a/third_party/tzdb/Etc/GMT b/third_party/tzdb/Etc/GMT new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/Etc/GMT differ diff --git a/third_party/tzdb/Etc/GMT+0 b/third_party/tzdb/Etc/GMT+0 new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+0 differ diff --git a/third_party/tzdb/Etc/GMT+1 b/third_party/tzdb/Etc/GMT+1 new file mode 100644 index 00000000..4dab6f90 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+1 differ diff --git a/third_party/tzdb/Etc/GMT+10 b/third_party/tzdb/Etc/GMT+10 new file mode 100644 index 00000000..c749290a Binary files /dev/null and b/third_party/tzdb/Etc/GMT+10 differ diff --git a/third_party/tzdb/Etc/GMT+11 b/third_party/tzdb/Etc/GMT+11 new file mode 100644 index 00000000..d9699823 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+11 differ diff --git a/third_party/tzdb/Etc/GMT+12 b/third_party/tzdb/Etc/GMT+12 new file mode 100644 index 00000000..cdeec909 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+12 differ diff --git a/third_party/tzdb/Etc/GMT+2 b/third_party/tzdb/Etc/GMT+2 new file mode 100644 index 00000000..fbd2a941 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+2 differ diff --git a/third_party/tzdb/Etc/GMT+3 b/third_party/tzdb/Etc/GMT+3 new file mode 100644 index 00000000..ee246ef5 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+3 differ diff --git a/third_party/tzdb/Etc/GMT+4 b/third_party/tzdb/Etc/GMT+4 new file mode 100644 index 00000000..5a25ff2a Binary files /dev/null and b/third_party/tzdb/Etc/GMT+4 differ diff --git a/third_party/tzdb/Etc/GMT+5 b/third_party/tzdb/Etc/GMT+5 new file mode 100644 index 00000000..c0b745f1 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+5 differ diff --git a/third_party/tzdb/Etc/GMT+6 b/third_party/tzdb/Etc/GMT+6 new file mode 100644 index 00000000..06e777d5 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+6 differ diff --git a/third_party/tzdb/Etc/GMT+7 b/third_party/tzdb/Etc/GMT+7 new file mode 100644 index 00000000..4e0b53a0 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+7 differ diff --git a/third_party/tzdb/Etc/GMT+8 b/third_party/tzdb/Etc/GMT+8 new file mode 100644 index 00000000..714b0c56 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+8 differ diff --git a/third_party/tzdb/Etc/GMT+9 b/third_party/tzdb/Etc/GMT+9 new file mode 100644 index 00000000..78b9daa3 Binary files /dev/null and b/third_party/tzdb/Etc/GMT+9 differ diff --git a/third_party/tzdb/Etc/GMT-0 b/third_party/tzdb/Etc/GMT-0 new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-0 differ diff --git a/third_party/tzdb/Etc/GMT-1 b/third_party/tzdb/Etc/GMT-1 new file mode 100644 index 00000000..a838bebf Binary files /dev/null and b/third_party/tzdb/Etc/GMT-1 differ diff --git a/third_party/tzdb/Etc/GMT-10 b/third_party/tzdb/Etc/GMT-10 new file mode 100644 index 00000000..68ff77db Binary files /dev/null and b/third_party/tzdb/Etc/GMT-10 differ diff --git a/third_party/tzdb/Etc/GMT-11 b/third_party/tzdb/Etc/GMT-11 new file mode 100644 index 00000000..66af5a42 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-11 differ diff --git a/third_party/tzdb/Etc/GMT-12 b/third_party/tzdb/Etc/GMT-12 new file mode 100644 index 00000000..17ba5057 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-12 differ diff --git a/third_party/tzdb/Etc/GMT-13 b/third_party/tzdb/Etc/GMT-13 new file mode 100644 index 00000000..5f3706ce Binary files /dev/null and b/third_party/tzdb/Etc/GMT-13 differ diff --git a/third_party/tzdb/Etc/GMT-14 b/third_party/tzdb/Etc/GMT-14 new file mode 100644 index 00000000..7e9f9c46 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-14 differ diff --git a/third_party/tzdb/Etc/GMT-2 b/third_party/tzdb/Etc/GMT-2 new file mode 100644 index 00000000..fcef6d9a Binary files /dev/null and b/third_party/tzdb/Etc/GMT-2 differ diff --git a/third_party/tzdb/Etc/GMT-3 b/third_party/tzdb/Etc/GMT-3 new file mode 100644 index 00000000..27973bc8 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-3 differ diff --git a/third_party/tzdb/Etc/GMT-4 b/third_party/tzdb/Etc/GMT-4 new file mode 100644 index 00000000..1efd8412 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-4 differ diff --git a/third_party/tzdb/Etc/GMT-5 b/third_party/tzdb/Etc/GMT-5 new file mode 100644 index 00000000..1f761844 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-5 differ diff --git a/third_party/tzdb/Etc/GMT-6 b/third_party/tzdb/Etc/GMT-6 new file mode 100644 index 00000000..952681ed Binary files /dev/null and b/third_party/tzdb/Etc/GMT-6 differ diff --git a/third_party/tzdb/Etc/GMT-7 b/third_party/tzdb/Etc/GMT-7 new file mode 100644 index 00000000..cefc9126 Binary files /dev/null and b/third_party/tzdb/Etc/GMT-7 differ diff --git a/third_party/tzdb/Etc/GMT-8 b/third_party/tzdb/Etc/GMT-8 new file mode 100644 index 00000000..afb093da Binary files /dev/null and b/third_party/tzdb/Etc/GMT-8 differ diff --git a/third_party/tzdb/Etc/GMT-9 b/third_party/tzdb/Etc/GMT-9 new file mode 100644 index 00000000..9265fb7c Binary files /dev/null and b/third_party/tzdb/Etc/GMT-9 differ diff --git a/third_party/tzdb/Etc/GMT0 b/third_party/tzdb/Etc/GMT0 new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/Etc/GMT0 differ diff --git a/third_party/tzdb/Etc/Greenwich b/third_party/tzdb/Etc/Greenwich new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/Etc/Greenwich differ diff --git a/third_party/tzdb/Etc/UCT b/third_party/tzdb/Etc/UCT new file mode 100644 index 00000000..91558be0 Binary files /dev/null and b/third_party/tzdb/Etc/UCT differ diff --git a/third_party/tzdb/Etc/UTC b/third_party/tzdb/Etc/UTC new file mode 100644 index 00000000..91558be0 Binary files /dev/null and b/third_party/tzdb/Etc/UTC differ diff --git a/third_party/tzdb/Etc/Universal b/third_party/tzdb/Etc/Universal new file mode 100644 index 00000000..91558be0 Binary files /dev/null and b/third_party/tzdb/Etc/Universal differ diff --git a/third_party/tzdb/Etc/Zulu b/third_party/tzdb/Etc/Zulu new file mode 100644 index 00000000..91558be0 Binary files /dev/null and b/third_party/tzdb/Etc/Zulu differ diff --git a/third_party/tzdb/Europe/Amsterdam b/third_party/tzdb/Europe/Amsterdam new file mode 100644 index 00000000..c3ff07b4 Binary files /dev/null and b/third_party/tzdb/Europe/Amsterdam differ diff --git a/third_party/tzdb/Europe/Andorra b/third_party/tzdb/Europe/Andorra new file mode 100644 index 00000000..59625503 Binary files /dev/null and b/third_party/tzdb/Europe/Andorra differ diff --git a/third_party/tzdb/Europe/Astrakhan b/third_party/tzdb/Europe/Astrakhan new file mode 100644 index 00000000..a41624f5 Binary files /dev/null and b/third_party/tzdb/Europe/Astrakhan differ diff --git a/third_party/tzdb/Europe/Athens b/third_party/tzdb/Europe/Athens new file mode 100644 index 00000000..9f3a0678 Binary files /dev/null and b/third_party/tzdb/Europe/Athens differ diff --git a/third_party/tzdb/Europe/Belfast b/third_party/tzdb/Europe/Belfast new file mode 100644 index 00000000..5ad74220 Binary files /dev/null and b/third_party/tzdb/Europe/Belfast differ diff --git a/third_party/tzdb/Europe/Belgrade b/third_party/tzdb/Europe/Belgrade new file mode 100644 index 00000000..27de456f Binary files /dev/null and b/third_party/tzdb/Europe/Belgrade differ diff --git a/third_party/tzdb/Europe/Berlin b/third_party/tzdb/Europe/Berlin new file mode 100644 index 00000000..7f6d958f Binary files /dev/null and b/third_party/tzdb/Europe/Berlin differ diff --git a/third_party/tzdb/Europe/Bratislava b/third_party/tzdb/Europe/Bratislava new file mode 100644 index 00000000..ce8f433e Binary files /dev/null and b/third_party/tzdb/Europe/Bratislava differ diff --git a/third_party/tzdb/Europe/Brussels b/third_party/tzdb/Europe/Brussels new file mode 100644 index 00000000..40d7124e Binary files /dev/null and b/third_party/tzdb/Europe/Brussels differ diff --git a/third_party/tzdb/Europe/Bucharest b/third_party/tzdb/Europe/Bucharest new file mode 100644 index 00000000..4303b903 Binary files /dev/null and b/third_party/tzdb/Europe/Bucharest differ diff --git a/third_party/tzdb/Europe/Budapest b/third_party/tzdb/Europe/Budapest new file mode 100644 index 00000000..b76c873d Binary files /dev/null and b/third_party/tzdb/Europe/Budapest differ diff --git a/third_party/tzdb/Europe/Busingen b/third_party/tzdb/Europe/Busingen new file mode 100644 index 00000000..ad6cf592 Binary files /dev/null and b/third_party/tzdb/Europe/Busingen differ diff --git a/third_party/tzdb/Europe/Chisinau b/third_party/tzdb/Europe/Chisinau new file mode 100644 index 00000000..062ca379 Binary files /dev/null and b/third_party/tzdb/Europe/Chisinau differ diff --git a/third_party/tzdb/Europe/Copenhagen b/third_party/tzdb/Europe/Copenhagen new file mode 100644 index 00000000..776be6e4 Binary files /dev/null and b/third_party/tzdb/Europe/Copenhagen differ diff --git a/third_party/tzdb/Europe/Dublin b/third_party/tzdb/Europe/Dublin new file mode 100644 index 00000000..c729def4 Binary files /dev/null and b/third_party/tzdb/Europe/Dublin differ diff --git a/third_party/tzdb/Europe/Gibraltar b/third_party/tzdb/Europe/Gibraltar new file mode 100644 index 00000000..a38f11ff Binary files /dev/null and b/third_party/tzdb/Europe/Gibraltar differ diff --git a/third_party/tzdb/Europe/Guernsey b/third_party/tzdb/Europe/Guernsey new file mode 100644 index 00000000..88f5a751 Binary files /dev/null and b/third_party/tzdb/Europe/Guernsey differ diff --git a/third_party/tzdb/Europe/Helsinki b/third_party/tzdb/Europe/Helsinki new file mode 100644 index 00000000..b4f8f9cb Binary files /dev/null and b/third_party/tzdb/Europe/Helsinki differ diff --git a/third_party/tzdb/Europe/Isle_of_Man b/third_party/tzdb/Europe/Isle_of_Man new file mode 100644 index 00000000..9668bf4c Binary files /dev/null and b/third_party/tzdb/Europe/Isle_of_Man differ diff --git a/third_party/tzdb/Europe/Istanbul b/third_party/tzdb/Europe/Istanbul new file mode 100644 index 00000000..7c2336dd Binary files /dev/null and b/third_party/tzdb/Europe/Istanbul differ diff --git a/third_party/tzdb/Europe/Jersey b/third_party/tzdb/Europe/Jersey new file mode 100644 index 00000000..8648c50a Binary files /dev/null and b/third_party/tzdb/Europe/Jersey differ diff --git a/third_party/tzdb/Europe/Kaliningrad b/third_party/tzdb/Europe/Kaliningrad new file mode 100644 index 00000000..cc99beab Binary files /dev/null and b/third_party/tzdb/Europe/Kaliningrad differ diff --git a/third_party/tzdb/Europe/Kirov b/third_party/tzdb/Europe/Kirov new file mode 100644 index 00000000..0cfb956b Binary files /dev/null and b/third_party/tzdb/Europe/Kirov differ diff --git a/third_party/tzdb/Europe/Kyiv b/third_party/tzdb/Europe/Kyiv new file mode 100644 index 00000000..52efea88 Binary files /dev/null and b/third_party/tzdb/Europe/Kyiv differ diff --git a/third_party/tzdb/Europe/Lisbon b/third_party/tzdb/Europe/Lisbon new file mode 100644 index 00000000..616de167 Binary files /dev/null and b/third_party/tzdb/Europe/Lisbon differ diff --git a/third_party/tzdb/Europe/Ljubljana b/third_party/tzdb/Europe/Ljubljana new file mode 100644 index 00000000..a5bc4c7a Binary files /dev/null and b/third_party/tzdb/Europe/Ljubljana differ diff --git a/third_party/tzdb/Europe/London b/third_party/tzdb/Europe/London new file mode 100644 index 00000000..5ad74220 Binary files /dev/null and b/third_party/tzdb/Europe/London differ diff --git a/third_party/tzdb/Europe/Luxembourg b/third_party/tzdb/Europe/Luxembourg new file mode 100644 index 00000000..c4ca733f Binary files /dev/null and b/third_party/tzdb/Europe/Luxembourg differ diff --git a/third_party/tzdb/Europe/Madrid b/third_party/tzdb/Europe/Madrid new file mode 100644 index 00000000..53f4cd10 Binary files /dev/null and b/third_party/tzdb/Europe/Madrid differ diff --git a/third_party/tzdb/Europe/Malta b/third_party/tzdb/Europe/Malta new file mode 100644 index 00000000..1d1a7bcf Binary files /dev/null and b/third_party/tzdb/Europe/Malta differ diff --git a/third_party/tzdb/Europe/Mariehamn b/third_party/tzdb/Europe/Mariehamn new file mode 100644 index 00000000..b4f8f9cb Binary files /dev/null and b/third_party/tzdb/Europe/Mariehamn differ diff --git a/third_party/tzdb/Europe/Minsk b/third_party/tzdb/Europe/Minsk new file mode 100644 index 00000000..3731e40d Binary files /dev/null and b/third_party/tzdb/Europe/Minsk differ diff --git a/third_party/tzdb/Europe/Monaco b/third_party/tzdb/Europe/Monaco new file mode 100644 index 00000000..adbe45d1 Binary files /dev/null and b/third_party/tzdb/Europe/Monaco differ diff --git a/third_party/tzdb/Europe/Moscow b/third_party/tzdb/Europe/Moscow new file mode 100644 index 00000000..ddb3f4e9 Binary files /dev/null and b/third_party/tzdb/Europe/Moscow differ diff --git a/third_party/tzdb/Europe/Nicosia b/third_party/tzdb/Europe/Nicosia new file mode 100644 index 00000000..f7f10ab7 Binary files /dev/null and b/third_party/tzdb/Europe/Nicosia differ diff --git a/third_party/tzdb/Europe/Oslo b/third_party/tzdb/Europe/Oslo new file mode 100644 index 00000000..15a34c3c Binary files /dev/null and b/third_party/tzdb/Europe/Oslo differ diff --git a/third_party/tzdb/Europe/Paris b/third_party/tzdb/Europe/Paris new file mode 100644 index 00000000..7d366c60 Binary files /dev/null and b/third_party/tzdb/Europe/Paris differ diff --git a/third_party/tzdb/Europe/Podgorica b/third_party/tzdb/Europe/Podgorica new file mode 100644 index 00000000..27de456f Binary files /dev/null and b/third_party/tzdb/Europe/Podgorica differ diff --git a/third_party/tzdb/Europe/Prague b/third_party/tzdb/Europe/Prague new file mode 100644 index 00000000..ce8f433e Binary files /dev/null and b/third_party/tzdb/Europe/Prague differ diff --git a/third_party/tzdb/Europe/Riga b/third_party/tzdb/Europe/Riga new file mode 100644 index 00000000..8db477d0 Binary files /dev/null and b/third_party/tzdb/Europe/Riga differ diff --git a/third_party/tzdb/Europe/Rome b/third_party/tzdb/Europe/Rome new file mode 100644 index 00000000..32b2899a Binary files /dev/null and b/third_party/tzdb/Europe/Rome differ diff --git a/third_party/tzdb/Europe/Samara b/third_party/tzdb/Europe/Samara new file mode 100644 index 00000000..d0ea2f25 Binary files /dev/null and b/third_party/tzdb/Europe/Samara differ diff --git a/third_party/tzdb/Europe/San_Marino b/third_party/tzdb/Europe/San_Marino new file mode 100644 index 00000000..32b2899a Binary files /dev/null and b/third_party/tzdb/Europe/San_Marino differ diff --git a/third_party/tzdb/Europe/Sarajevo b/third_party/tzdb/Europe/Sarajevo new file mode 100644 index 00000000..ce652f75 Binary files /dev/null and b/third_party/tzdb/Europe/Sarajevo differ diff --git a/third_party/tzdb/Europe/Saratov b/third_party/tzdb/Europe/Saratov new file mode 100644 index 00000000..a8639133 Binary files /dev/null and b/third_party/tzdb/Europe/Saratov differ diff --git a/third_party/tzdb/Europe/Simferopol b/third_party/tzdb/Europe/Simferopol new file mode 100644 index 00000000..4bf24de1 Binary files /dev/null and b/third_party/tzdb/Europe/Simferopol differ diff --git a/third_party/tzdb/Europe/Skopje b/third_party/tzdb/Europe/Skopje new file mode 100644 index 00000000..4635e120 Binary files /dev/null and b/third_party/tzdb/Europe/Skopje differ diff --git a/third_party/tzdb/Europe/Sofia b/third_party/tzdb/Europe/Sofia new file mode 100644 index 00000000..0e4d8793 Binary files /dev/null and b/third_party/tzdb/Europe/Sofia differ diff --git a/third_party/tzdb/Europe/Stockholm b/third_party/tzdb/Europe/Stockholm new file mode 100644 index 00000000..f3e0c7f0 Binary files /dev/null and b/third_party/tzdb/Europe/Stockholm differ diff --git a/third_party/tzdb/Europe/Tallinn b/third_party/tzdb/Europe/Tallinn new file mode 100644 index 00000000..b5acca3c Binary files /dev/null and b/third_party/tzdb/Europe/Tallinn differ diff --git a/third_party/tzdb/Europe/Tirane b/third_party/tzdb/Europe/Tirane new file mode 100644 index 00000000..0b86017d Binary files /dev/null and b/third_party/tzdb/Europe/Tirane differ diff --git a/third_party/tzdb/Europe/Tiraspol b/third_party/tzdb/Europe/Tiraspol new file mode 100644 index 00000000..062ca379 Binary files /dev/null and b/third_party/tzdb/Europe/Tiraspol differ diff --git a/third_party/tzdb/Europe/Ulyanovsk b/third_party/tzdb/Europe/Ulyanovsk new file mode 100644 index 00000000..d668233b Binary files /dev/null and b/third_party/tzdb/Europe/Ulyanovsk differ diff --git a/third_party/tzdb/Europe/Vaduz b/third_party/tzdb/Europe/Vaduz new file mode 100644 index 00000000..1803686b Binary files /dev/null and b/third_party/tzdb/Europe/Vaduz differ diff --git a/third_party/tzdb/Europe/Vatican b/third_party/tzdb/Europe/Vatican new file mode 100644 index 00000000..32b2899a Binary files /dev/null and b/third_party/tzdb/Europe/Vatican differ diff --git a/third_party/tzdb/Europe/Vienna b/third_party/tzdb/Europe/Vienna new file mode 100644 index 00000000..3582bb15 Binary files /dev/null and b/third_party/tzdb/Europe/Vienna differ diff --git a/third_party/tzdb/Europe/Vilnius b/third_party/tzdb/Europe/Vilnius new file mode 100644 index 00000000..7abd63fa Binary files /dev/null and b/third_party/tzdb/Europe/Vilnius differ diff --git a/third_party/tzdb/Europe/Volgograd b/third_party/tzdb/Europe/Volgograd new file mode 100644 index 00000000..9d51a38c Binary files /dev/null and b/third_party/tzdb/Europe/Volgograd differ diff --git a/third_party/tzdb/Europe/Warsaw b/third_party/tzdb/Europe/Warsaw new file mode 100644 index 00000000..e33cf671 Binary files /dev/null and b/third_party/tzdb/Europe/Warsaw differ diff --git a/third_party/tzdb/Europe/Zagreb b/third_party/tzdb/Europe/Zagreb new file mode 100644 index 00000000..71d1a709 Binary files /dev/null and b/third_party/tzdb/Europe/Zagreb differ diff --git a/third_party/tzdb/Europe/Zurich b/third_party/tzdb/Europe/Zurich new file mode 100644 index 00000000..ad6cf592 Binary files /dev/null and b/third_party/tzdb/Europe/Zurich differ diff --git a/third_party/tzdb/Factory b/third_party/tzdb/Factory new file mode 100644 index 00000000..60aa2a0d Binary files /dev/null and b/third_party/tzdb/Factory differ diff --git a/third_party/tzdb/GMT b/third_party/tzdb/GMT new file mode 100644 index 00000000..c6347466 Binary files /dev/null and b/third_party/tzdb/GMT differ diff --git a/third_party/tzdb/Indian/Antananarivo b/third_party/tzdb/Indian/Antananarivo new file mode 100644 index 00000000..fe002aed Binary files /dev/null and b/third_party/tzdb/Indian/Antananarivo differ diff --git a/third_party/tzdb/Indian/Chagos b/third_party/tzdb/Indian/Chagos new file mode 100644 index 00000000..a5554816 Binary files /dev/null and b/third_party/tzdb/Indian/Chagos differ diff --git a/third_party/tzdb/Indian/Christmas b/third_party/tzdb/Indian/Christmas new file mode 100644 index 00000000..c4ea38a8 Binary files /dev/null and b/third_party/tzdb/Indian/Christmas differ diff --git a/third_party/tzdb/Indian/Cocos b/third_party/tzdb/Indian/Cocos new file mode 100644 index 00000000..c57ffe78 Binary files /dev/null and b/third_party/tzdb/Indian/Cocos differ diff --git a/third_party/tzdb/Indian/Comoro b/third_party/tzdb/Indian/Comoro new file mode 100644 index 00000000..bde4da9e Binary files /dev/null and b/third_party/tzdb/Indian/Comoro differ diff --git a/third_party/tzdb/Indian/Kerguelen b/third_party/tzdb/Indian/Kerguelen new file mode 100644 index 00000000..2824919b Binary files /dev/null and b/third_party/tzdb/Indian/Kerguelen differ diff --git a/third_party/tzdb/Indian/Mahe b/third_party/tzdb/Indian/Mahe new file mode 100644 index 00000000..5b477bfb Binary files /dev/null and b/third_party/tzdb/Indian/Mahe differ diff --git a/third_party/tzdb/Indian/Maldives b/third_party/tzdb/Indian/Maldives new file mode 100644 index 00000000..555728b1 Binary files /dev/null and b/third_party/tzdb/Indian/Maldives differ diff --git a/third_party/tzdb/Indian/Mauritius b/third_party/tzdb/Indian/Mauritius new file mode 100644 index 00000000..212d4b2e Binary files /dev/null and b/third_party/tzdb/Indian/Mauritius differ diff --git a/third_party/tzdb/Indian/Mayotte b/third_party/tzdb/Indian/Mayotte new file mode 100644 index 00000000..9acf1009 Binary files /dev/null and b/third_party/tzdb/Indian/Mayotte differ diff --git a/third_party/tzdb/Indian/Reunion b/third_party/tzdb/Indian/Reunion new file mode 100644 index 00000000..3aca8ed3 Binary files /dev/null and b/third_party/tzdb/Indian/Reunion differ diff --git a/third_party/tzdb/Pacific/Apia b/third_party/tzdb/Pacific/Apia new file mode 100644 index 00000000..e592a68e Binary files /dev/null and b/third_party/tzdb/Pacific/Apia differ diff --git a/third_party/tzdb/Pacific/Auckland b/third_party/tzdb/Pacific/Auckland new file mode 100644 index 00000000..6575fdce Binary files /dev/null and b/third_party/tzdb/Pacific/Auckland differ diff --git a/third_party/tzdb/Pacific/Bougainville b/third_party/tzdb/Pacific/Bougainville new file mode 100644 index 00000000..c535acda Binary files /dev/null and b/third_party/tzdb/Pacific/Bougainville differ diff --git a/third_party/tzdb/Pacific/Chatham b/third_party/tzdb/Pacific/Chatham new file mode 100644 index 00000000..bde46cf7 Binary files /dev/null and b/third_party/tzdb/Pacific/Chatham differ diff --git a/third_party/tzdb/Pacific/Chuuk b/third_party/tzdb/Pacific/Chuuk new file mode 100644 index 00000000..680b88c6 Binary files /dev/null and b/third_party/tzdb/Pacific/Chuuk differ diff --git a/third_party/tzdb/Pacific/Easter b/third_party/tzdb/Pacific/Easter new file mode 100644 index 00000000..184cb6a8 Binary files /dev/null and b/third_party/tzdb/Pacific/Easter differ diff --git a/third_party/tzdb/Pacific/Efate b/third_party/tzdb/Pacific/Efate new file mode 100644 index 00000000..777325fc Binary files /dev/null and b/third_party/tzdb/Pacific/Efate differ diff --git a/third_party/tzdb/Pacific/Fakaofo b/third_party/tzdb/Pacific/Fakaofo new file mode 100644 index 00000000..4905ea72 Binary files /dev/null and b/third_party/tzdb/Pacific/Fakaofo differ diff --git a/third_party/tzdb/Pacific/Fiji b/third_party/tzdb/Pacific/Fiji new file mode 100644 index 00000000..acf8091a Binary files /dev/null and b/third_party/tzdb/Pacific/Fiji differ diff --git a/third_party/tzdb/Pacific/Funafuti b/third_party/tzdb/Pacific/Funafuti new file mode 100644 index 00000000..cae6f7ac Binary files /dev/null and b/third_party/tzdb/Pacific/Funafuti differ diff --git a/third_party/tzdb/Pacific/Galapagos b/third_party/tzdb/Pacific/Galapagos new file mode 100644 index 00000000..40051ddf Binary files /dev/null and b/third_party/tzdb/Pacific/Galapagos differ diff --git a/third_party/tzdb/Pacific/Gambier b/third_party/tzdb/Pacific/Gambier new file mode 100644 index 00000000..84acaf41 Binary files /dev/null and b/third_party/tzdb/Pacific/Gambier differ diff --git a/third_party/tzdb/Pacific/Guadalcanal b/third_party/tzdb/Pacific/Guadalcanal new file mode 100644 index 00000000..1ab83534 Binary files /dev/null and b/third_party/tzdb/Pacific/Guadalcanal differ diff --git a/third_party/tzdb/Pacific/Guam b/third_party/tzdb/Pacific/Guam new file mode 100644 index 00000000..66490d25 Binary files /dev/null and b/third_party/tzdb/Pacific/Guam differ diff --git a/third_party/tzdb/Pacific/Honolulu b/third_party/tzdb/Pacific/Honolulu new file mode 100644 index 00000000..c7cd0601 Binary files /dev/null and b/third_party/tzdb/Pacific/Honolulu differ diff --git a/third_party/tzdb/Pacific/Johnston b/third_party/tzdb/Pacific/Johnston new file mode 100644 index 00000000..c7cd0601 Binary files /dev/null and b/third_party/tzdb/Pacific/Johnston differ diff --git a/third_party/tzdb/Pacific/Kanton b/third_party/tzdb/Pacific/Kanton new file mode 100644 index 00000000..b1c4b073 Binary files /dev/null and b/third_party/tzdb/Pacific/Kanton differ diff --git a/third_party/tzdb/Pacific/Kiritimati b/third_party/tzdb/Pacific/Kiritimati new file mode 100644 index 00000000..b4c6037a Binary files /dev/null and b/third_party/tzdb/Pacific/Kiritimati differ diff --git a/third_party/tzdb/Pacific/Kosrae b/third_party/tzdb/Pacific/Kosrae new file mode 100644 index 00000000..0666fb0d Binary files /dev/null and b/third_party/tzdb/Pacific/Kosrae differ diff --git a/third_party/tzdb/Pacific/Kwajalein b/third_party/tzdb/Pacific/Kwajalein new file mode 100644 index 00000000..1887a607 Binary files /dev/null and b/third_party/tzdb/Pacific/Kwajalein differ diff --git a/third_party/tzdb/Pacific/Majuro b/third_party/tzdb/Pacific/Majuro new file mode 100644 index 00000000..17fdae59 Binary files /dev/null and b/third_party/tzdb/Pacific/Majuro differ diff --git a/third_party/tzdb/Pacific/Marquesas b/third_party/tzdb/Pacific/Marquesas new file mode 100644 index 00000000..f546c03f Binary files /dev/null and b/third_party/tzdb/Pacific/Marquesas differ diff --git a/third_party/tzdb/Pacific/Midway b/third_party/tzdb/Pacific/Midway new file mode 100644 index 00000000..6c8665be Binary files /dev/null and b/third_party/tzdb/Pacific/Midway differ diff --git a/third_party/tzdb/Pacific/Nauru b/third_party/tzdb/Pacific/Nauru new file mode 100644 index 00000000..3339b6cf Binary files /dev/null and b/third_party/tzdb/Pacific/Nauru differ diff --git a/third_party/tzdb/Pacific/Niue b/third_party/tzdb/Pacific/Niue new file mode 100644 index 00000000..f76972f8 Binary files /dev/null and b/third_party/tzdb/Pacific/Niue differ diff --git a/third_party/tzdb/Pacific/Norfolk b/third_party/tzdb/Pacific/Norfolk new file mode 100644 index 00000000..3b4186d6 Binary files /dev/null and b/third_party/tzdb/Pacific/Norfolk differ diff --git a/third_party/tzdb/Pacific/Noumea b/third_party/tzdb/Pacific/Noumea new file mode 100644 index 00000000..959cc8cd Binary files /dev/null and b/third_party/tzdb/Pacific/Noumea differ diff --git a/third_party/tzdb/Pacific/Pago_Pago b/third_party/tzdb/Pacific/Pago_Pago new file mode 100644 index 00000000..cb56709a Binary files /dev/null and b/third_party/tzdb/Pacific/Pago_Pago differ diff --git a/third_party/tzdb/Pacific/Palau b/third_party/tzdb/Pacific/Palau new file mode 100644 index 00000000..1cbebe28 Binary files /dev/null and b/third_party/tzdb/Pacific/Palau differ diff --git a/third_party/tzdb/Pacific/Pitcairn b/third_party/tzdb/Pacific/Pitcairn new file mode 100644 index 00000000..5ee90e70 Binary files /dev/null and b/third_party/tzdb/Pacific/Pitcairn differ diff --git a/third_party/tzdb/Pacific/Pohnpei b/third_party/tzdb/Pacific/Pohnpei new file mode 100644 index 00000000..33be0b8e Binary files /dev/null and b/third_party/tzdb/Pacific/Pohnpei differ diff --git a/third_party/tzdb/Pacific/Port_Moresby b/third_party/tzdb/Pacific/Port_Moresby new file mode 100644 index 00000000..7be2474d Binary files /dev/null and b/third_party/tzdb/Pacific/Port_Moresby differ diff --git a/third_party/tzdb/Pacific/Rarotonga b/third_party/tzdb/Pacific/Rarotonga new file mode 100644 index 00000000..184a87c1 Binary files /dev/null and b/third_party/tzdb/Pacific/Rarotonga differ diff --git a/third_party/tzdb/Pacific/Saipan b/third_party/tzdb/Pacific/Saipan new file mode 100644 index 00000000..122f93b0 Binary files /dev/null and b/third_party/tzdb/Pacific/Saipan differ diff --git a/third_party/tzdb/Pacific/Samoa b/third_party/tzdb/Pacific/Samoa new file mode 100644 index 00000000..cb56709a Binary files /dev/null and b/third_party/tzdb/Pacific/Samoa differ diff --git a/third_party/tzdb/Pacific/Tahiti b/third_party/tzdb/Pacific/Tahiti new file mode 100644 index 00000000..481edd30 Binary files /dev/null and b/third_party/tzdb/Pacific/Tahiti differ diff --git a/third_party/tzdb/Pacific/Tarawa b/third_party/tzdb/Pacific/Tarawa new file mode 100644 index 00000000..47661d40 Binary files /dev/null and b/third_party/tzdb/Pacific/Tarawa differ diff --git a/third_party/tzdb/Pacific/Tongatapu b/third_party/tzdb/Pacific/Tongatapu new file mode 100644 index 00000000..c8824ab5 Binary files /dev/null and b/third_party/tzdb/Pacific/Tongatapu differ diff --git a/third_party/tzdb/Pacific/Wake b/third_party/tzdb/Pacific/Wake new file mode 100644 index 00000000..0e94913d Binary files /dev/null and b/third_party/tzdb/Pacific/Wake differ diff --git a/third_party/tzdb/Pacific/Wallis b/third_party/tzdb/Pacific/Wallis new file mode 100644 index 00000000..14648aaa Binary files /dev/null and b/third_party/tzdb/Pacific/Wallis differ diff --git a/third_party/tzdb/Pacific/Yap b/third_party/tzdb/Pacific/Yap new file mode 100644 index 00000000..680b88c6 Binary files /dev/null and b/third_party/tzdb/Pacific/Yap differ diff --git a/third_party/tzdb/UTC b/third_party/tzdb/UTC new file mode 100644 index 00000000..91558be0 Binary files /dev/null and b/third_party/tzdb/UTC differ diff --git a/third_party/tzdb/iso3166.tab b/third_party/tzdb/iso3166.tab new file mode 100644 index 00000000..4ae35234 --- /dev/null +++ b/third_party/tzdb/iso3166.tab @@ -0,0 +1,279 @@ +# ISO 3166 alpha-2 country codes +# +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. +# +# From Paul Eggert (2025-07-01): +# This file contains a table of two-letter country codes. Columns are +# separated by a single tab. Lines beginning with ‘#’ are comments. +# All text uses UTF-8 encoding. The columns of the table are as follows: +# +# 1. ISO 3166-1 alpha-2 country code, current as of +# ISO/TC 46 N1127 (2024-02-29). See: ISO/TC 46 Documents +# https://www.iso.org/committee/48750.html?view=documents +# 2. The usual English name for the coded region. This sometimes +# departs from ISO-listed names, sometimes so that sorted subsets +# of names are useful (e.g., “Samoa (American)” and “Samoa +# (western)” rather than “American Samoa” and “Samoa”), +# sometimes to avoid confusion among non-experts (e.g., +# “Czech Republic” and “Turkey” rather than “Czechia” and “Türkiye”), +# and sometimes to omit needless detail or churn (e.g., “Netherlands” +# rather than “Netherlands (the)” or “Netherlands (Kingdom of the)”). +# +# The table is sorted by country code. +# +# This table is intended as an aid for users, to help them select time +# zone data appropriate for their practical needs. It is not intended +# to take or endorse any position on legal or territorial claims. +# +#country- +#code name of country, territory, area, or subdivision +AD Andorra +AE United Arab Emirates +AF Afghanistan +AG Antigua & Barbuda +AI Anguilla +AL Albania +AM Armenia +AO Angola +AQ Antarctica +AR Argentina +AS Samoa (American) +AT Austria +AU Australia +AW Aruba +AX Åland Islands +AZ Azerbaijan +BA Bosnia & Herzegovina +BB Barbados +BD Bangladesh +BE Belgium +BF Burkina Faso +BG Bulgaria +BH Bahrain +BI Burundi +BJ Benin +BL St Barthelemy +BM Bermuda +BN Brunei +BO Bolivia +BQ Caribbean NL +BR Brazil +BS Bahamas +BT Bhutan +BV Bouvet Island +BW Botswana +BY Belarus +BZ Belize +CA Canada +CC Cocos (Keeling) Islands +CD Congo (Dem. Rep.) +CF Central African Rep. +CG Congo (Rep.) +CH Switzerland +CI Côte d’Ivoire +CK Cook Islands +CL Chile +CM Cameroon +CN China +CO Colombia +CR Costa Rica +CU Cuba +CV Cape Verde +CW Curaçao +CX Christmas Island +CY Cyprus +CZ Czech Republic +DE Germany +DJ Djibouti +DK Denmark +DM Dominica +DO Dominican Republic +DZ Algeria +EC Ecuador +EE Estonia +EG Egypt +EH Western Sahara +ER Eritrea +ES Spain +ET Ethiopia +FI Finland +FJ Fiji +FK Falkland Islands +FM Micronesia +FO Faroe Islands +FR France +GA Gabon +GB Britain (UK) +GD Grenada +GE Georgia +GF French Guiana +GG Guernsey +GH Ghana +GI Gibraltar +GL Greenland +GM Gambia +GN Guinea +GP Guadeloupe +GQ Equatorial Guinea +GR Greece +GS South Georgia & the South Sandwich Islands +GT Guatemala +GU Guam +GW Guinea-Bissau +GY Guyana +HK Hong Kong +HM Heard Island & McDonald Islands +HN Honduras +HR Croatia +HT Haiti +HU Hungary +ID Indonesia +IE Ireland +IL Israel +IM Isle of Man +IN India +IO British Indian Ocean Territory +IQ Iraq +IR Iran +IS Iceland +IT Italy +JE Jersey +JM Jamaica +JO Jordan +JP Japan +KE Kenya +KG Kyrgyzstan +KH Cambodia +KI Kiribati +KM Comoros +KN St Kitts & Nevis +KP Korea (North) +KR Korea (South) +KW Kuwait +KY Cayman Islands +KZ Kazakhstan +LA Laos +LB Lebanon +LC St Lucia +LI Liechtenstein +LK Sri Lanka +LR Liberia +LS Lesotho +LT Lithuania +LU Luxembourg +LV Latvia +LY Libya +MA Morocco +MC Monaco +MD Moldova +ME Montenegro +MF St Martin (French) +MG Madagascar +MH Marshall Islands +MK North Macedonia +ML Mali +MM Myanmar (Burma) +MN Mongolia +MO Macau +MP Northern Mariana Islands +MQ Martinique +MR Mauritania +MS Montserrat +MT Malta +MU Mauritius +MV Maldives +MW Malawi +MX Mexico +MY Malaysia +MZ Mozambique +NA Namibia +NC New Caledonia +NE Niger +NF Norfolk Island +NG Nigeria +NI Nicaragua +NL Netherlands +NO Norway +NP Nepal +NR Nauru +NU Niue +NZ New Zealand +OM Oman +PA Panama +PE Peru +PF French Polynesia +PG Papua New Guinea +PH Philippines +PK Pakistan +PL Poland +PM St Pierre & Miquelon +PN Pitcairn +PR Puerto Rico +PS Palestine +PT Portugal +PW Palau +PY Paraguay +QA Qatar +RE Réunion +RO Romania +RS Serbia +RU Russia +RW Rwanda +SA Saudi Arabia +SB Solomon Islands +SC Seychelles +SD Sudan +SE Sweden +SG Singapore +SH St Helena +SI Slovenia +SJ Svalbard & Jan Mayen +SK Slovakia +SL Sierra Leone +SM San Marino +SN Senegal +SO Somalia +SR Suriname +SS South Sudan +ST Sao Tome & Principe +SV El Salvador +SX St Maarten (Dutch) +SY Syria +SZ Eswatini (Swaziland) +TC Turks & Caicos Is +TD Chad +TF French S. Terr. +TG Togo +TH Thailand +TJ Tajikistan +TK Tokelau +TL East Timor +TM Turkmenistan +TN Tunisia +TO Tonga +TR Turkey +TT Trinidad & Tobago +TV Tuvalu +TW Taiwan +TZ Tanzania +UA Ukraine +UG Uganda +UM US minor outlying islands +US United States +UY Uruguay +UZ Uzbekistan +VA Vatican City +VC St Vincent +VE Venezuela +VG Virgin Islands (UK) +VI Virgin Islands (US) +VN Vietnam +VU Vanuatu +WF Wallis & Futuna +WS Samoa (western) +YE Yemen +YT Mayotte +ZA South Africa +ZM Zambia +ZW Zimbabwe diff --git a/third_party/tzdb/leapseconds b/third_party/tzdb/leapseconds new file mode 100644 index 00000000..a796e4b4 --- /dev/null +++ b/third_party/tzdb/leapseconds @@ -0,0 +1,86 @@ +# Allowance for leap seconds added to each time zone file. + +# This file is in the public domain. + +# This file is generated automatically from the data in the public-domain +# NIST/IERS format leap-seconds.list file, which can be copied from +# +# or via a less-secure protocol and with different comments and +# less volatile last-modified and expiration timestamps, from +# . +# For more about leap-seconds.list, please see +# The NTP Timescale and Leap Seconds +# . + +# The rules for leap seconds are specified in Annex 1 (Time scales) of: +# Standard-frequency and time-signal emissions. +# International Telecommunication Union - Radiocommunication Sector +# (ITU-R) Recommendation TF.460-6 (02/2002) +# . +# The International Earth Rotation and Reference Systems Service (IERS) +# periodically uses leap seconds to keep UTC to within 0.9 s of UT1 +# (a proxy for Earth's angle in space as measured by astronomers) +# and publishes leap second data in a copyrighted file +# . +# See: Levine J. Coordinated Universal Time and the leap second. +# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995 +# . + +# There were no leap seconds before 1972, as no official mechanism +# accounted for the discrepancy between atomic time (TAI) and the earth's +# rotation. The first ("1 Jan 1972") data line in leap-seconds.list +# does not denote a leap second; it denotes the start of the current definition +# of UTC. + +# All leap-seconds are Stationary (S) at the given UTC time. +# The correction (+ or -) is made at the given time, so in the unlikely +# event of a negative leap second, a line would look like this: +# Leap YEAR MON DAY 23:59:59 - S +# Typical lines look like this: +# Leap YEAR MON DAY 23:59:60 + S +Leap 1972 Jun 30 23:59:60 + S +Leap 1972 Dec 31 23:59:60 + S +Leap 1973 Dec 31 23:59:60 + S +Leap 1974 Dec 31 23:59:60 + S +Leap 1975 Dec 31 23:59:60 + S +Leap 1976 Dec 31 23:59:60 + S +Leap 1977 Dec 31 23:59:60 + S +Leap 1978 Dec 31 23:59:60 + S +Leap 1979 Dec 31 23:59:60 + S +Leap 1981 Jun 30 23:59:60 + S +Leap 1982 Jun 30 23:59:60 + S +Leap 1983 Jun 30 23:59:60 + S +Leap 1985 Jun 30 23:59:60 + S +Leap 1987 Dec 31 23:59:60 + S +Leap 1989 Dec 31 23:59:60 + S +Leap 1990 Dec 31 23:59:60 + S +Leap 1992 Jun 30 23:59:60 + S +Leap 1993 Jun 30 23:59:60 + S +Leap 1994 Jun 30 23:59:60 + S +Leap 1995 Dec 31 23:59:60 + S +Leap 1997 Jun 30 23:59:60 + S +Leap 1998 Dec 31 23:59:60 + S +Leap 2005 Dec 31 23:59:60 + S +Leap 2008 Dec 31 23:59:60 + S +Leap 2012 Jun 30 23:59:60 + S +Leap 2015 Jun 30 23:59:60 + S +Leap 2016 Dec 31 23:59:60 + S + +# UTC timestamp when this leap second list expires. +# Any additional leap seconds will come after this. +# This Expires line is commented out for now, +# so that pre-2020a zic implementations do not reject this file. +#Expires 2026 Dec 28 00:00:00 + +# Here are POSIX timestamps for the data in this file. +# "#updated" gives the last time the leap seconds data changed +# or, if this file was derived from the IERS leap-seconds.list, +# the last time that file changed in any way. +# "#expires" gives the first time this file might be wrong; +# if this file was derived from the IERS leap-seconds.list, +# this is typically a bit less than one year after "updated". +#updated 1767698058 (2026-01-06 11:14:18 UTC) +#expires 1798416000 (2026-12-28 00:00:00 UTC) + +# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) +# File expires on 28 December 2026 diff --git a/third_party/tzdb/posixrules b/third_party/tzdb/posixrules new file mode 100644 index 00000000..a8b9ab19 Binary files /dev/null and b/third_party/tzdb/posixrules differ diff --git a/third_party/tzdb/zone.tab b/third_party/tzdb/zone.tab new file mode 100644 index 00000000..2ae8a8c4 --- /dev/null +++ b/third_party/tzdb/zone.tab @@ -0,0 +1,448 @@ +# tzdb timezone descriptions (deprecated version) +# +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. +# +# From Paul Eggert (2021-09-20): +# This file is intended as a backward-compatibility aid for older programs. +# New programs should use zone1970.tab. This file is like zone1970.tab (see +# zone1970.tab's comments), but with the following additional restrictions: +# +# 1. This file contains only ASCII characters. +# 2. The first data column contains exactly one country code. +# +# Because of (2), each row stands for an area that is the intersection +# of a region identified by a country code and of a timezone where civil +# clocks have agreed since 1970; this is a narrower definition than +# that of zone1970.tab. +# +# Unlike zone1970.tab, a row's third column can be a Link from +# 'backward' instead of a Zone. +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#country- +#code coordinates TZ comments +AD +4230+00131 Europe/Andorra +AE +2518+05518 Asia/Dubai +AF +3431+06912 Asia/Kabul +AG +1703-06148 America/Antigua +AI +1812-06304 America/Anguilla +AL +4120+01950 Europe/Tirane +AM +4011+04430 Asia/Yerevan +AO -0848+01314 Africa/Luanda +AQ -7750+16636 Antarctica/McMurdo New Zealand time - McMurdo, South Pole +AQ -6617+11031 Antarctica/Casey Casey +AQ -6835+07758 Antarctica/Davis Davis +AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville +AQ -6736+06253 Antarctica/Mawson Mawson +AQ -6448-06406 Antarctica/Palmer Palmer +AQ -6734-06808 Antarctica/Rothera Rothera +AQ -690022+0393524 Antarctica/Syowa Syowa +AQ -720041+0023206 Antarctica/Troll Troll +AQ -7824+10654 Antarctica/Vostok Vostok +AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) +AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF) +AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) +AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) +AR -2649-06513 America/Argentina/Tucuman Tucuman (TM) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) +AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) +AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) +AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) +AR -3319-06621 America/Argentina/San_Luis San Luis (SL) +AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) +AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) +AS -1416-17042 Pacific/Pago_Pago +AT +4813+01620 Europe/Vienna +AU -3133+15905 Australia/Lord_Howe Lord Howe Island +AU -5430+15857 Antarctica/Macquarie Macquarie Island +AU -4253+14719 Australia/Hobart Tasmania +AU -3749+14458 Australia/Melbourne Victoria +AU -3352+15113 Australia/Sydney New South Wales (most areas) +AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna) +AU -2728+15302 Australia/Brisbane Queensland (most areas) +AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands) +AU -3455+13835 Australia/Adelaide South Australia +AU -1228+13050 Australia/Darwin Northern Territory +AU -3157+11551 Australia/Perth Western Australia (most areas) +AU -3143+12852 Australia/Eucla Western Australia (Eucla) +AW +1230-06958 America/Aruba +AX +6006+01957 Europe/Mariehamn +AZ +4023+04951 Asia/Baku +BA +4352+01825 Europe/Sarajevo +BB +1306-05937 America/Barbados +BD +2343+09025 Asia/Dhaka +BE +5050+00420 Europe/Brussels +BF +1222-00131 Africa/Ouagadougou +BG +4241+02319 Europe/Sofia +BH +2623+05035 Asia/Bahrain +BI -0323+02922 Africa/Bujumbura +BJ +0629+00237 Africa/Porto-Novo +BL +1753-06251 America/St_Barthelemy +BM +3217-06446 Atlantic/Bermuda +BN +0456+11455 Asia/Brunei +BO -1630-06809 America/La_Paz +BQ +120903-0681636 America/Kralendijk +BR -0351-03225 America/Noronha Atlantic islands +BR -0127-04829 America/Belem Para (east), Amapa +BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB) +BR -0803-03454 America/Recife Pernambuco +BR -0712-04812 America/Araguaina Tocantins +BR -0940-03543 America/Maceio Alagoas, Sergipe +BR -1259-03831 America/Bahia Bahia +BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) +BR -2027-05437 America/Campo_Grande Mato Grosso do Sul +BR -1535-05605 America/Cuiaba Mato Grosso +BR -0226-05452 America/Santarem Para (west) +BR -0846-06354 America/Porto_Velho Rondonia +BR +0249-06040 America/Boa_Vista Roraima +BR -0308-06001 America/Manaus Amazonas (east) +BR -0640-06952 America/Eirunepe Amazonas (west) +BR -0958-06748 America/Rio_Branco Acre +BS +2505-07721 America/Nassau +BT +2728+08939 Asia/Thimphu +BW -2439+02555 Africa/Gaborone +BY +5354+02734 Europe/Minsk +BZ +1730-08812 America/Belize +CA +4734-05243 America/St_Johns Newfoundland, Labrador (SE) +CA +4439-06336 America/Halifax Atlantic - NS (most areas), PE +CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton) +CA +4606-06447 America/Moncton Atlantic - New Brunswick +CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) +CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) +CA +4339-07923 America/Toronto Eastern - ON & QC (most areas) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) +CA +484531-0913718 America/Atikokan EST - ON (Atikokan), NU (Coral H) +CA +4953-09709 America/Winnipeg Central - ON (west), Manitoba +CA +744144-0944945 America/Resolute Central - NU (Resolute) +CA +624900-0920459 America/Rankin_Inlet Central - NU (central) +CA +5024-10439 America/Regina CST - SK (most areas) +CA +5017-10750 America/Swift_Current CST - SK (midwest) +CA +5333-11328 America/Edmonton Mountain - AB, BC(E), NT(E), SK(W) +CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west) +CA +682059-1334300 America/Inuvik Mountain - NT (west) +CA +4916-12307 America/Vancouver MST - BC (most areas) +CA +4906-11631 America/Creston MST - BC (Creston) +CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) +CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) +CA +6043-13503 America/Whitehorse MST - Yukon (east) +CA +6404-13925 America/Dawson MST - Yukon (west) +CC -1210+09655 Indian/Cocos +CD -0418+01518 Africa/Kinshasa Dem. Rep. of Congo (west) +CD -1140+02728 Africa/Lubumbashi Dem. Rep. of Congo (east) +CF +0422+01835 Africa/Bangui +CG -0416+01517 Africa/Brazzaville +CH +4723+00832 Europe/Zurich +CI +0519-00402 Africa/Abidjan +CK -2114-15946 Pacific/Rarotonga +CL -3327-07040 America/Santiago most of Chile +CL -4534-07204 America/Coyhaique Aysen Region +CL -5309-07055 America/Punta_Arenas Magallanes Region +CL -2709-10926 Pacific/Easter Easter Island +CM +0403+00942 Africa/Douala +CN +3114+12128 Asia/Shanghai Beijing Time +CN +4348+08735 Asia/Urumqi Xinjiang Time +CO +0436-07405 America/Bogota +CR +0956-08405 America/Costa_Rica +CU +2308-08222 America/Havana +CV +1455-02331 Atlantic/Cape_Verde +CW +1211-06900 America/Curacao +CX -1025+10543 Indian/Christmas +CY +3510+03322 Asia/Nicosia most of Cyprus +CY +3507+03357 Asia/Famagusta Northern Cyprus +CZ +5005+01426 Europe/Prague +DE +5230+01322 Europe/Berlin most of Germany +DE +4742+00841 Europe/Busingen Busingen +DJ +1136+04309 Africa/Djibouti +DK +5540+01235 Europe/Copenhagen +DM +1518-06124 America/Dominica +DO +1828-06954 America/Santo_Domingo +DZ +3647+00303 Africa/Algiers +EC -0210-07950 America/Guayaquil Ecuador (mainland) +EC -0054-08936 Pacific/Galapagos Galapagos Islands +EE +5925+02445 Europe/Tallinn +EG +3003+03115 Africa/Cairo +EH +2709-01312 Africa/El_Aaiun +ER +1520+03853 Africa/Asmara +ES +4024-00341 Europe/Madrid Spain (mainland) +ES +3553-00519 Africa/Ceuta Ceuta, Melilla +ES +2806-01524 Atlantic/Canary Canary Islands +ET +0902+03842 Africa/Addis_Ababa +FI +6010+02458 Europe/Helsinki +FJ -1808+17825 Pacific/Fiji +FK -5142-05751 Atlantic/Stanley +FM +0725+15147 Pacific/Chuuk Chuuk/Truk, Yap +FM +0658+15813 Pacific/Pohnpei Pohnpei/Ponape +FM +0519+16259 Pacific/Kosrae Kosrae +FO +6201-00646 Atlantic/Faroe +FR +4852+00220 Europe/Paris +GA +0023+00927 Africa/Libreville +GB +513030-0000731 Europe/London +GD +1203-06145 America/Grenada +GE +4143+04449 Asia/Tbilisi +GF +0456-05220 America/Cayenne +GG +492717-0023210 Europe/Guernsey +GH +0533-00013 Africa/Accra +GI +3608-00521 Europe/Gibraltar +GL +6411-05144 America/Nuuk most of Greenland +GL +7646-01840 America/Danmarkshavn National Park (east coast) +GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit +GL +7634-06847 America/Thule Thule/Pituffik +GM +1328-01639 Africa/Banjul +GN +0931-01343 Africa/Conakry +GP +1614-06132 America/Guadeloupe +GQ +0345+00847 Africa/Malabo +GR +3758+02343 Europe/Athens +GS -5416-03632 Atlantic/South_Georgia +GT +1438-09031 America/Guatemala +GU +1328+14445 Pacific/Guam +GW +1151-01535 Africa/Bissau +GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong +HN +1406-08713 America/Tegucigalpa +HR +4548+01558 Europe/Zagreb +HT +1832-07220 America/Port-au-Prince +HU +4730+01905 Europe/Budapest +ID -0610+10648 Asia/Jakarta Java, Sumatra +ID -0002+10920 Asia/Pontianak Borneo (west, central) +ID -0507+11924 Asia/Makassar Borneo (east, south), Sulawesi/Celebes, Bali, Nusa Tengarra, Timor (west) +ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya), Malukus/Moluccas +IE +5320-00615 Europe/Dublin +IL +314650+0351326 Asia/Jerusalem +IM +5409-00428 Europe/Isle_of_Man +IN +2232+08822 Asia/Kolkata +IO -0720+07225 Indian/Chagos +IQ +3321+04425 Asia/Baghdad +IR +3540+05126 Asia/Tehran +IS +6409-02151 Atlantic/Reykjavik +IT +4154+01229 Europe/Rome +JE +491101-0020624 Europe/Jersey +JM +175805-0764736 America/Jamaica +JO +3157+03556 Asia/Amman +JP +353916+1394441 Asia/Tokyo +KE -0117+03649 Africa/Nairobi +KG +4254+07436 Asia/Bishkek +KH +1133+10455 Asia/Phnom_Penh +KI +0125+17300 Pacific/Tarawa Gilbert Islands +KI -0247-17143 Pacific/Kanton Phoenix Islands +KI +0152-15720 Pacific/Kiritimati Line Islands +KM -1141+04316 Indian/Comoro +KN +1718-06243 America/St_Kitts +KP +3901+12545 Asia/Pyongyang +KR +3733+12658 Asia/Seoul +KW +2920+04759 Asia/Kuwait +KY +1918-08123 America/Cayman +KZ +4315+07657 Asia/Almaty most of Kazakhstan +KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda +KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay +KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe +KZ +4431+05016 Asia/Aqtau Mangghystau/Mankistau +KZ +4707+05156 Asia/Atyrau Atyrau/Atirau/Gur'yev +KZ +5113+05121 Asia/Oral West Kazakhstan +LA +1758+10236 Asia/Vientiane +LB +3353+03530 Asia/Beirut +LC +1401-06100 America/St_Lucia +LI +4709+00931 Europe/Vaduz +LK +0656+07951 Asia/Colombo +LR +0618-01047 Africa/Monrovia +LS -2928+02730 Africa/Maseru +LT +5441+02519 Europe/Vilnius +LU +4936+00609 Europe/Luxembourg +LV +5657+02406 Europe/Riga +LY +3254+01311 Africa/Tripoli +MA +3339-00735 Africa/Casablanca +MC +4342+00723 Europe/Monaco +MD +4700+02850 Europe/Chisinau +ME +4226+01916 Europe/Podgorica +MF +1804-06305 America/Marigot +MG -1855+04731 Indian/Antananarivo +MH +0709+17112 Pacific/Majuro most of Marshall Islands +MH +0905+16720 Pacific/Kwajalein Kwajalein +MK +4159+02126 Europe/Skopje +ML +1239-00800 Africa/Bamako +MM +1647+09610 Asia/Yangon +MN +4755+10653 Asia/Ulaanbaatar most of Mongolia +MN +4801+09139 Asia/Hovd Bayan-Olgii, Hovd, Uvs +MO +221150+1133230 Asia/Macau +MP +1512+14545 Pacific/Saipan +MQ +1436-06105 America/Martinique +MR +1806-01557 Africa/Nouakchott +MS +1643-06213 America/Montserrat +MT +3554+01431 Europe/Malta +MU -2010+05730 Indian/Mauritius +MV +0410+07330 Indian/Maldives +MW -1547+03500 Africa/Blantyre +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatan +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahia de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California +MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula) +MY +0133+11020 Asia/Kuching Sabah, Sarawak +MZ -2558+03235 Africa/Maputo +NA -2234+01706 Africa/Windhoek +NC -2216+16627 Pacific/Noumea +NE +1331+00207 Africa/Niamey +NF -2903+16758 Pacific/Norfolk +NG +0627+00324 Africa/Lagos +NI +1209-08617 America/Managua +NL +5222+00454 Europe/Amsterdam +NO +5955+01045 Europe/Oslo +NP +2743+08519 Asia/Kathmandu +NR -0031+16655 Pacific/Nauru +NU -1901-16955 Pacific/Niue +NZ -3652+17446 Pacific/Auckland most of New Zealand +NZ -4357-17633 Pacific/Chatham Chatham Islands +OM +2336+05835 Asia/Muscat +PA +0858-07932 America/Panama +PE -1203-07703 America/Lima +PF -1732-14934 Pacific/Tahiti Society Islands +PF -0900-13930 Pacific/Marquesas Marquesas Islands +PF -2308-13457 Pacific/Gambier Gambier Islands +PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea +PG -0613+15534 Pacific/Bougainville Bougainville +PH +143512+1205804 Asia/Manila +PK +2452+06703 Asia/Karachi +PL +5215+02100 Europe/Warsaw +PM +4703-05620 America/Miquelon +PN -2504-13005 Pacific/Pitcairn +PR +182806-0660622 America/Puerto_Rico +PS +3130+03428 Asia/Gaza Gaza Strip +PS +313200+0350542 Asia/Hebron West Bank +PT +3843-00908 Europe/Lisbon Portugal (mainland) +PT +3238-01654 Atlantic/Madeira Madeira Islands +PT +3744-02540 Atlantic/Azores Azores +PW +0720+13429 Pacific/Palau +PY -2516-05740 America/Asuncion +QA +2517+05132 Asia/Qatar +RE -2052+05528 Indian/Reunion +RO +4426+02606 Europe/Bucharest +RS +4450+02030 Europe/Belgrade +RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad +RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area +# The obsolescent zone.tab format cannot represent Europe/Simferopol well. +# Put it in RU section and list as UA. See "territorial claims" above. +# Programs should use zone1970.tab instead; see above. +UA +4457+03406 Europe/Simferopol Crimea +RU +5836+04939 Europe/Kirov MSK+00 - Kirov +RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +5134+04602 Europe/Saratov MSK+01 - Saratov +RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk +RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia +RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals +RU +5500+07324 Asia/Omsk MSK+03 - Omsk +RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk +RU +5322+08345 Asia/Barnaul MSK+04 - Altai +RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk +RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo +RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area +RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia +RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky +RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River +RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky +RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River +RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky +RU +5934+15048 Asia/Magadan MSK+08 - Magadan +RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island +RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E), N Kuril Is +RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka +RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea +RW -0157+03004 Africa/Kigali +SA +2438+04643 Asia/Riyadh +SB -0932+16012 Pacific/Guadalcanal +SC -0440+05528 Indian/Mahe +SD +1536+03232 Africa/Khartoum +SE +5920+01803 Europe/Stockholm +SG +0117+10351 Asia/Singapore +SH -1555-00542 Atlantic/St_Helena +SI +4603+01431 Europe/Ljubljana +SJ +7800+01600 Arctic/Longyearbyen +SK +4809+01707 Europe/Bratislava +SL +0830-01315 Africa/Freetown +SM +4355+01228 Europe/San_Marino +SN +1440-01726 Africa/Dakar +SO +0204+04522 Africa/Mogadishu +SR +0550-05510 America/Paramaribo +SS +0451+03137 Africa/Juba +ST +0020+00644 Africa/Sao_Tome +SV +1342-08912 America/El_Salvador +SX +180305-0630250 America/Lower_Princes +SY +3330+03618 Asia/Damascus +SZ -2618+03106 Africa/Mbabane +TC +2128-07108 America/Grand_Turk +TD +1207+01503 Africa/Ndjamena +TF -492110+0701303 Indian/Kerguelen +TG +0608+00113 Africa/Lome +TH +1345+10031 Asia/Bangkok +TJ +3835+06848 Asia/Dushanbe +TK -0922-17114 Pacific/Fakaofo +TL -0833+12535 Asia/Dili +TM +3757+05823 Asia/Ashgabat +TN +3648+01011 Africa/Tunis +TO -210800-1751200 Pacific/Tongatapu +TR +4101+02858 Europe/Istanbul +TT +1039-06131 America/Port_of_Spain +TV -0831+17913 Pacific/Funafuti +TW +2503+12130 Asia/Taipei +TZ -0648+03917 Africa/Dar_es_Salaam +UA +5026+03031 Europe/Kyiv most of Ukraine +UG +0019+03225 Africa/Kampala +UM +2813-17722 Pacific/Midway Midway Islands +UM +1917+16637 Pacific/Wake Wake Island +US +404251-0740023 America/New_York Eastern (most areas) +US +421953-0830245 America/Detroit Eastern - MI (most areas) +US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) +US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne) +US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas) +US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn) +US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski) +US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford) +US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike) +US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland) +US +415100-0873900 America/Chicago Central (most areas) +US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry) +US +411745-0863730 America/Indiana/Knox Central - IN (Starke) +US +450628-0873651 America/Menominee Central - MI (Wisconsin border) +US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver) +US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural) +US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer) +US +394421-1045903 America/Denver Mountain (most areas) +US +433649-1161209 America/Boise Mountain - ID (south), OR (east) +US +332654-1120424 America/Phoenix MST - AZ (except Navajo) +US +340308-1181434 America/Los_Angeles Pacific +US +611305-1495401 America/Anchorage Alaska (most areas) +US +581807-1342511 America/Juneau Alaska - Juneau area +US +571035-1351807 America/Sitka Alaska - Sitka area +US +550737-1313435 America/Metlakatla Alaska - Annette Island +US +593249-1394338 America/Yakutat Alaska - Yakutat +US +643004-1652423 America/Nome Alaska (west) +US +515248-1763929 America/Adak Alaska - western Aleutians +US +211825-1575130 Pacific/Honolulu Hawaii +UY -345433-0561245 America/Montevideo +UZ +3940+06648 Asia/Samarkand Uzbekistan (west) +UZ +4120+06918 Asia/Tashkent Uzbekistan (east) +VA +415408+0122711 Europe/Vatican +VC +1309-06114 America/St_Vincent +VE +1030-06656 America/Caracas +VG +1827-06437 America/Tortola +VI +1821-06456 America/St_Thomas +VN +1045+10640 Asia/Ho_Chi_Minh +VU -1740+16825 Pacific/Efate +WF -1318-17610 Pacific/Wallis +WS -1350-17144 Pacific/Apia +YE +1245+04512 Asia/Aden +YT -1247+04514 Indian/Mayotte +ZA -2615+02800 Africa/Johannesburg +ZM -1525+02817 Africa/Lusaka +ZW -1750+03103 Africa/Harare diff --git a/third_party/tzdb/zone1970.tab b/third_party/tzdb/zone1970.tab new file mode 100644 index 00000000..a9b47bcb --- /dev/null +++ b/third_party/tzdb/zone1970.tab @@ -0,0 +1,375 @@ +# tzdb timezone descriptions +# +# This file is in the public domain. +# +# From Paul Eggert (2025-05-15): +# This file contains a table where each row stands for a timezone where +# civil timestamps have agreed since 1970. Columns are separated by +# a single tab. Lines beginning with ‘#’ are comments. All text uses +# UTF-8 encoding. The columns of the table are as follows: +# +# 1. The countries that overlap the timezone, as a comma-separated list +# of ISO 3166 2-character country codes. +# 2. Latitude and longitude of the timezone’s principal location +# in ISO 6709 sign-degrees-minutes-seconds format, +# either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, +# first latitude (+ is north), then longitude (+ is east). +# 3. Timezone name used in value of TZ environment variable. +# Please see the theory.html file for how these names are chosen. +# If multiple timezones overlap a country, each has a row in the +# table, with each column 1 containing the country code. +# 4. Comments; present if and only if countries have multiple timezones, +# and useful only for those countries. For example, the comments +# for the row with countries CH,DE,LI and name Europe/Zurich +# are useful only for DE, since CH and LI have no other timezones. +# +# If a timezone covers multiple countries, the most-populous city is used, +# and that country is listed first in column 1; any other countries +# are listed alphabetically by country code. The table is sorted +# first by country code, then (if possible) by an order within the +# country that (1) makes some geographical sense, and (2) puts the +# most populous timezones first, where that does not contradict (1). +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#country- +#codes coordinates TZ comments +AD +4230+00131 Europe/Andorra +AE,OM,RE,SC,TF +2518+05518 Asia/Dubai Crozet +AF +3431+06912 Asia/Kabul +AL +4120+01950 Europe/Tirane +AM +4011+04430 Asia/Yerevan +AQ -6617+11031 Antarctica/Casey Casey +AQ -6835+07758 Antarctica/Davis Davis +AQ -6736+06253 Antarctica/Mawson Mawson +AQ -6448-06406 Antarctica/Palmer Palmer +AQ -6734-06808 Antarctica/Rothera Rothera +AQ -720041+0023206 Antarctica/Troll Troll +AQ -7824+10654 Antarctica/Vostok Vostok +AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) +AR -3124-06411 America/Argentina/Cordoba most areas: CB, CC, CN, ER, FM, MN, SE, SF +AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) +AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) +AR -2649-06513 America/Argentina/Tucuman Tucumán (TM) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) +AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) +AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) +AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) +AR -3319-06621 America/Argentina/San_Luis San Luis (SL) +AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) +AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) +AS,UM -1416-17042 Pacific/Pago_Pago Midway +AT +4813+01620 Europe/Vienna +AU -3133+15905 Australia/Lord_Howe Lord Howe Island +AU -5430+15857 Antarctica/Macquarie Macquarie Island +AU -4253+14719 Australia/Hobart Tasmania +AU -3749+14458 Australia/Melbourne Victoria +AU -3352+15113 Australia/Sydney New South Wales (most areas) +AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna) +AU -2728+15302 Australia/Brisbane Queensland (most areas) +AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands) +AU -3455+13835 Australia/Adelaide South Australia +AU -1228+13050 Australia/Darwin Northern Territory +AU -3157+11551 Australia/Perth Western Australia (most areas) +AU -3143+12852 Australia/Eucla Western Australia (Eucla) +AZ +4023+04951 Asia/Baku +BB +1306-05937 America/Barbados +BD +2343+09025 Asia/Dhaka +BE,LU,NL +5050+00420 Europe/Brussels +BG +4241+02319 Europe/Sofia +BM +3217-06446 Atlantic/Bermuda +BO -1630-06809 America/La_Paz +BR -0351-03225 America/Noronha Atlantic islands +BR -0127-04829 America/Belem Pará (east), Amapá +BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB) +BR -0803-03454 America/Recife Pernambuco +BR -0712-04812 America/Araguaina Tocantins +BR -0940-03543 America/Maceio Alagoas, Sergipe +BR -1259-03831 America/Bahia Bahia +BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) +BR -2027-05437 America/Campo_Grande Mato Grosso do Sul +BR -1535-05605 America/Cuiaba Mato Grosso +BR -0226-05452 America/Santarem Pará (west) +BR -0846-06354 America/Porto_Velho Rondônia +BR +0249-06040 America/Boa_Vista Roraima +BR -0308-06001 America/Manaus Amazonas (east) +BR -0640-06952 America/Eirunepe Amazonas (west) +BR -0958-06748 America/Rio_Branco Acre +BT +2728+08939 Asia/Thimphu +BY +5354+02734 Europe/Minsk +BZ +1730-08812 America/Belize +CA +4734-05243 America/St_Johns Newfoundland, Labrador (SE) +CA +4439-06336 America/Halifax Atlantic - NS (most areas), PE +CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton) +CA +4606-06447 America/Moncton Atlantic - New Brunswick +CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) +CA,BS +4339-07923 America/Toronto Eastern - ON & QC (most areas) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) +CA +4953-09709 America/Winnipeg Central - ON (west), Manitoba +CA +744144-0944945 America/Resolute Central - NU (Resolute) +CA +624900-0920459 America/Rankin_Inlet Central - NU (central) +CA +5024-10439 America/Regina CST - SK (most areas) +CA +5017-10750 America/Swift_Current CST - SK (midwest) +CA +5333-11328 America/Edmonton Mountain - AB, BC(E), NT(E), SK(W) +CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west) +CA +682059-1334300 America/Inuvik Mountain - NT (west) +CA +4916-12307 America/Vancouver MST - BC (most areas) +CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) +CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) +CA +6043-13503 America/Whitehorse MST - Yukon (east) +CA +6404-13925 America/Dawson MST - Yukon (west) +CH,DE,LI +4723+00832 Europe/Zurich Büsingen +CI,BF,GH,GM,GN,IS,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan +CK -2114-15946 Pacific/Rarotonga +CL -3327-07040 America/Santiago most of Chile +CL -4534-07204 America/Coyhaique Aysén Region +CL -5309-07055 America/Punta_Arenas Magallanes Region +CL -2709-10926 Pacific/Easter Easter Island +CN +3114+12128 Asia/Shanghai Beijing Time +CN +4348+08735 Asia/Urumqi Xinjiang Time +CO +0436-07405 America/Bogota +CR +0956-08405 America/Costa_Rica +CU +2308-08222 America/Havana +CV +1455-02331 Atlantic/Cape_Verde +CY +3510+03322 Asia/Nicosia most of Cyprus +CY +3507+03357 Asia/Famagusta Northern Cyprus +CZ,SK +5005+01426 Europe/Prague +DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin most of Germany +DO +1828-06954 America/Santo_Domingo +DZ +3647+00303 Africa/Algiers +EC -0210-07950 America/Guayaquil Ecuador (mainland) +EC -0054-08936 Pacific/Galapagos Galápagos Islands +EE +5925+02445 Europe/Tallinn +EG +3003+03115 Africa/Cairo +EH +2709-01312 Africa/El_Aaiun +ES +4024-00341 Europe/Madrid Spain (mainland) +ES +3553-00519 Africa/Ceuta Ceuta, Melilla +ES +2806-01524 Atlantic/Canary Canary Islands +FI,AX +6010+02458 Europe/Helsinki +FJ -1808+17825 Pacific/Fiji +FK -5142-05751 Atlantic/Stanley +FM +0519+16259 Pacific/Kosrae Kosrae +FO +6201-00646 Atlantic/Faroe +FR,MC +4852+00220 Europe/Paris +GB,GG,IM,JE +513030-0000731 Europe/London +GE +4143+04449 Asia/Tbilisi +GF +0456-05220 America/Cayenne +GI +3608-00521 Europe/Gibraltar +GL +6411-05144 America/Nuuk most of Greenland +GL +7646-01840 America/Danmarkshavn National Park (east coast) +GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit +GL +7634-06847 America/Thule Thule/Pituffik +GR +3758+02343 Europe/Athens +GS -5416-03632 Atlantic/South_Georgia +GT +1438-09031 America/Guatemala +GU,MP +1328+14445 Pacific/Guam +GW +1151-01535 Africa/Bissau +GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong +HN +1406-08713 America/Tegucigalpa +HT +1832-07220 America/Port-au-Prince +HU +4730+01905 Europe/Budapest +ID -0610+10648 Asia/Jakarta Java, Sumatra +ID -0002+10920 Asia/Pontianak Borneo (west, central) +ID -0507+11924 Asia/Makassar Borneo (east, south), Sulawesi/Celebes, Bali, Nusa Tengarra, Timor (west) +ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya), Malukus/Moluccas +IE +5320-00615 Europe/Dublin +IL +314650+0351326 Asia/Jerusalem +IN +2232+08822 Asia/Kolkata +IO -0720+07225 Indian/Chagos +IQ +3321+04425 Asia/Baghdad +IR +3540+05126 Asia/Tehran +IT,SM,VA +4154+01229 Europe/Rome +JM +175805-0764736 America/Jamaica +JO +3157+03556 Asia/Amman +JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory +KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi +KG +4254+07436 Asia/Bishkek +KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake +KI -0247-17143 Pacific/Kanton Phoenix Islands +KI +0152-15720 Pacific/Kiritimati Line Islands +KP +3901+12545 Asia/Pyongyang +KR +3733+12658 Asia/Seoul +KZ +4315+07657 Asia/Almaty most of Kazakhstan +KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda +KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay +KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe +KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau +KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur’yev +KZ +5113+05121 Asia/Oral West Kazakhstan +LB +3353+03530 Asia/Beirut +LK +0656+07951 Asia/Colombo +LR +0618-01047 Africa/Monrovia +LT +5441+02519 Europe/Vilnius +LV +5657+02406 Europe/Riga +LY +3254+01311 Africa/Tripoli +MA +3339-00735 Africa/Casablanca +MD +4700+02850 Europe/Chisinau +MH +0905+16720 Pacific/Kwajalein Kwajalein +MM,CC +1647+09610 Asia/Yangon +MN +4755+10653 Asia/Ulaanbaatar most of Mongolia +MN +4801+09139 Asia/Hovd Bayan-Ölgii, Hovd, Uvs +MO +221150+1133230 Asia/Macau +MQ +1436-06105 America/Martinique +MT +3554+01431 Europe/Malta +MU -2010+05730 Indian/Mauritius +MV,TF +0410+07330 Indian/Maldives Kerguelen, St Paul I, Amsterdam I +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatán +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo León, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo León, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahía de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California +MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak +MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time +NA -2234+01706 Africa/Windhoek +NC -2216+16627 Pacific/Noumea +NF -2903+16758 Pacific/Norfolk +NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time +NI +1209-08617 America/Managua +NP +2743+08519 Asia/Kathmandu +NR -0031+16655 Pacific/Nauru +NU -1901-16955 Pacific/Niue +NZ,AQ -3652+17446 Pacific/Auckland New Zealand time +NZ -4357-17633 Pacific/Chatham Chatham Islands +PA,CA,KY +0858-07932 America/Panama EST - ON (Atikokan), NU (Coral H) +PE -1203-07703 America/Lima +PF -1732-14934 Pacific/Tahiti Society Islands +PF -0900-13930 Pacific/Marquesas Marquesas Islands +PF -2308-13457 Pacific/Gambier Gambier Islands +PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d’Urville +PG -0613+15534 Pacific/Bougainville Bougainville +PH +143512+1205804 Asia/Manila +PK +2452+06703 Asia/Karachi +PL +5215+02100 Europe/Warsaw +PM +4703-05620 America/Miquelon +PN -2504-13005 Pacific/Pitcairn +PR,AG,CA,AI,AW,BL,BQ,CW,DM,GD,GP,KN,LC,MF,MS,SX,TT,VC,VG,VI +182806-0660622 America/Puerto_Rico AST - QC (Lower North Shore) +PS +3130+03428 Asia/Gaza Gaza Strip +PS +313200+0350542 Asia/Hebron West Bank +PT +3843-00908 Europe/Lisbon Portugal (mainland) +PT +3238-01654 Atlantic/Madeira Madeira Islands +PT +3744-02540 Atlantic/Azores Azores +PW +0720+13429 Pacific/Palau +PY -2516-05740 America/Asuncion +QA,BH +2517+05132 Asia/Qatar +RO +4426+02606 Europe/Bucharest +RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade +RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad +RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area +# Mention RU and UA alphabetically. See “territorial claims” above. +RU,UA +4457+03406 Europe/Simferopol Crimea +RU +5836+04939 Europe/Kirov MSK+00 - Kirov +RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +5134+04602 Europe/Saratov MSK+01 - Saratov +RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk +RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia +RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals +RU +5500+07324 Asia/Omsk MSK+03 - Omsk +RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk +RU +5322+08345 Asia/Barnaul MSK+04 - Altai +RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk +RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo +RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area +RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia +RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky +RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River +RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky +RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River +RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky +RU +5934+15048 Asia/Magadan MSK+08 - Magadan +RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island +RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E), N Kuril Is +RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka +RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea +SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa +SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei +SD +1536+03232 Africa/Khartoum +SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia +SR +0550-05510 America/Paramaribo +SS +0451+03137 Africa/Juba +ST +0020+00644 Africa/Sao_Tome +SV +1342-08912 America/El_Salvador +SY +3330+03618 Asia/Damascus +TC +2128-07108 America/Grand_Turk +TD +1207+01503 Africa/Ndjamena +TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok north Vietnam +TJ +3835+06848 Asia/Dushanbe +TK -0922-17114 Pacific/Fakaofo +TL -0833+12535 Asia/Dili +TM +3757+05823 Asia/Ashgabat +TN +3648+01011 Africa/Tunis +TO -210800-1751200 Pacific/Tongatapu +TR +4101+02858 Europe/Istanbul +TW +2503+12130 Asia/Taipei +UA +5026+03031 Europe/Kyiv most of Ukraine +US +404251-0740023 America/New_York Eastern (most areas) +US +421953-0830245 America/Detroit Eastern - MI (most areas) +US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) +US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne) +US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas) +US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn) +US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski) +US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford) +US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike) +US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland) +US +415100-0873900 America/Chicago Central (most areas) +US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry) +US +411745-0863730 America/Indiana/Knox Central - IN (Starke) +US +450628-0873651 America/Menominee Central - MI (Wisconsin border) +US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver) +US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural) +US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer) +US +394421-1045903 America/Denver Mountain (most areas) +US +433649-1161209 America/Boise Mountain - ID (south), OR (east) +US,CA +332654-1120424 America/Phoenix MST - AZ (most areas), Creston BC +US +340308-1181434 America/Los_Angeles Pacific +US +611305-1495401 America/Anchorage Alaska (most areas) +US +581807-1342511 America/Juneau Alaska - Juneau area +US +571035-1351807 America/Sitka Alaska - Sitka area +US +550737-1313435 America/Metlakatla Alaska - Annette Island +US +593249-1394338 America/Yakutat Alaska - Yakutat +US +643004-1652423 America/Nome Alaska (west) +US +515248-1763929 America/Adak Alaska - western Aleutians +US +211825-1575130 Pacific/Honolulu Hawaii +UY -345433-0561245 America/Montevideo +UZ +3940+06648 Asia/Samarkand Uzbekistan (west) +UZ +4120+06918 Asia/Tashkent Uzbekistan (east) +VE +1030-06656 America/Caracas +VN +1045+10640 Asia/Ho_Chi_Minh south Vietnam +VU -1740+16825 Pacific/Efate +WS -1350-17144 Pacific/Apia +ZA,LS,SZ -2615+02800 Africa/Johannesburg +# +# The next section contains experimental tab-separated comments for +# use by user agents like tzselect that identify continents and oceans. +# +# For example, the comment ‘#@AQAntarctica/’ means the country code +# AQ is in the continent Antarctica regardless of the Zone name, +# so Pacific/Auckland should be listed under Antarctica as well as +# under the Pacific because its line’s country codes include AQ. +# +# If more than one country code is affected each is listed separated +# by commas, e.g., ‘#@IS,SHAtlantic/’. If a country code is in +# more than one continent or ocean, each is listed separated by +# commas, e.g., the second column of ‘#@CY,TRAsia/,Europe/’. +# +# These experimental comments are present only for country codes where +# the continent or ocean is not already obvious from the Zone name. +# For example, there is no such comment for RU since it already +# corresponds to Zone names starting with both ‘Europe/’ and ‘Asia/’. +# +#@AQ Antarctica/ +#@IS,SH Atlantic/ +#@CY,TR Asia/,Europe/ +#@SJ Arctic/ +#@CC,CX,KM,MG,YT Indian/ diff --git a/third_party/tzdb/zonenow.tab b/third_party/tzdb/zonenow.tab new file mode 100644 index 00000000..54e4485d --- /dev/null +++ b/third_party/tzdb/zonenow.tab @@ -0,0 +1,296 @@ +# tzdb timezone descriptions, for users who do not care about old timestamps +# +# This file is in the public domain. +# +# From Paul Eggert (2023-12-18): +# This file contains a table where each row stands for a timezone +# where civil timestamps are predicted to agree from now on. +# This file is like zone1970.tab (see zone1970.tab’s comments), +# but with the following changes: +# +# 1. Each timezone corresponds to a set of clocks that are planned +# to agree from now on. This is a larger set of clocks than in +# zone1970.tab, where each timezone’s clocks must agree from 1970 on. +# 2. The first column is irrelevant and ignored. +# 3. The table is sorted in a different way: +# first by standard time UTC offset; +# then, if DST is used, by daylight saving UTC offset; +# then by time zone abbreviation. +# 4. Every timezone has a nonempty comments column, with wording +# distinguishing the timezone only from other timezones with the +# same UTC offset at some point during the year. +# +# The format of this table is experimental, and may change in future versions. +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#XX coordinates TZ comments +# +# -11 - SST +XX -1416-17042 Pacific/Pago_Pago Midway; Samoa (SST) +# +# -11 +XX -1901-16955 Pacific/Niue Niue +# +# -10 - HST +XX +211825-1575130 Pacific/Honolulu Hawaii (HST) +# +# -10 +XX -1732-14934 Pacific/Tahiti Tahiti; Cook Islands +# +# -10/-09 - HST / HDT (North America DST) +XX +515248-1763929 America/Adak western Aleutians in Alaska (HST/HDT) +# +# -09:30 +XX -0900-13930 Pacific/Marquesas Marquesas +# +# -09 +XX -2308-13457 Pacific/Gambier Gambier +# +# -09/-08 - AKST/AKDT (North America DST) +XX +611305-1495401 America/Anchorage most of Alaska (AKST/AKDT) +# +# -08 +XX -2504-13005 Pacific/Pitcairn Pitcairn +# +# -08/-07 - PST/PDT (North America DST) +XX +340308-1181434 America/Los_Angeles Pacific (PST/PDT) - US & Canada; Mexico near US border +# +# -08/-07 - PST/PDT (North America DST) until 2026-11-01 02:00; then MST +XX +4916-12307 America/Vancouver MST - BC (most areas) +# +# -07 - MST +XX +332654-1120424 America/Phoenix Mountain Standard (MST) - Arizona; western Mexico; Yukon +# +# -07/-06 - MST/MDT (North America DST) +XX +394421-1045903 America/Denver Mountain (MST/MDT) - US & Canada; Mexico near US border +# +# -06 +XX -0054-08936 Pacific/Galapagos Galápagos +# +# -06 - CST +XX +1924-09909 America/Mexico_City Central Standard (CST) - Saskatchewan; central Mexico; Central America +# +# -06/-05 (Chile DST) +XX -2709-10926 Pacific/Easter Easter Island +# +# -06/-05 - CST/CDT (North America DST) +XX +415100-0873900 America/Chicago Central (CST/CDT) - US & Canada; Mexico near US border +# +# -05 +XX -1203-07703 America/Lima eastern South America +# +# -05 - EST +XX +175805-0764736 America/Jamaica Eastern Standard (EST) - Caymans; Jamaica; eastern Mexico; Panama +# +# -05/-04 - CST/CDT (Cuba DST) +XX +2308-08222 America/Havana Cuba +# +# -05/-04 - EST/EDT (North America DST) +XX +404251-0740023 America/New_York Eastern (EST/EDT) - US & Canada +# +# -04 +XX +1030-06656 America/Caracas western South America +# +# -04 - AST +XX +1828-06954 America/Santo_Domingo Atlantic Standard (AST) - eastern Caribbean +# +# -04/-03 (Chile DST) +XX -3327-07040 America/Santiago most of Chile +# +# -04/-03 - AST/ADT (North America DST) +XX +4439-06336 America/Halifax Atlantic (AST/ADT) - Canada; Bermuda +# +# -03:30/-02:30 - NST/NDT (North America DST) +XX +4734-05243 America/St_Johns Newfoundland (NST/NDT) +# +# -03 +XX -2332-04637 America/Sao_Paulo eastern and southern South America +# +# -03/-02 (North America DST) +XX +4703-05620 America/Miquelon St Pierre & Miquelon +# +# -02 +XX -0351-03225 America/Noronha Fernando de Noronha; South Georgia +# +# -02/-01 (EU DST) +XX +6411-05144 America/Nuuk most of Greenland +# +# -01 +XX +1455-02331 Atlantic/Cape_Verde Cape Verde +# +# -01/+00 (EU DST) +XX +3744-02540 Atlantic/Azores Azores +# +# +00 - GMT +XX +0519-00402 Africa/Abidjan far western Africa; Iceland (GMT) +# +# +00/+01 - GMT/BST (EU DST) +XX +513030-0000731 Europe/London United Kingdom (GMT/BST) +# +# +00/+01 - WET/WEST (EU DST) +XX +3843-00908 Europe/Lisbon western Europe (WET/WEST) +# +# +00/+02 - Troll DST +XX -720041+0023206 Antarctica/Troll Troll Station in Antarctica +# +# +01 - CET +XX +3647+00303 Africa/Algiers Algeria, Tunisia (CET) +# +# +01 - WAT +XX +0627+00324 Africa/Lagos western Africa (WAT) +# +# +01/+00 - IST/GMT (EU DST in reverse) +XX +5320-00615 Europe/Dublin Ireland (IST/GMT) +# +# +01/+00 - (Morocco DST) +XX +3339-00735 Africa/Casablanca Morocco +# +# +01/+02 - CET/CEST (EU DST) +XX +4852+00220 Europe/Paris central Europe (CET/CEST) +# +# +02 - CAT +XX -2558+03235 Africa/Maputo central Africa (CAT) +# +# +02 - EET +XX +3254+01311 Africa/Tripoli Libya; Kaliningrad (EET) +# +# +02 - SAST +XX -2615+02800 Africa/Johannesburg southern Africa (SAST) +# +# +02/+03 - EET/EEST (EU DST) +XX +3758+02343 Europe/Athens eastern Europe (EET/EEST) +# +# +02/+03 - EET/EEST (Egypt DST) +XX +3003+03115 Africa/Cairo Egypt +# +# +02/+03 - EET/EEST (Lebanon DST) +XX +3353+03530 Asia/Beirut Lebanon +# +# +02/+03 - EET/EEST (Palestine DST) +XX +3130+03428 Asia/Gaza Palestine +# +# +02/+03 - IST/IDT (Israel DST) +XX +314650+0351326 Asia/Jerusalem Israel +# +# +03 +XX +4101+02858 Europe/Istanbul Near East; Belarus +# +# +03 - EAT +XX -0117+03649 Africa/Nairobi eastern Africa (EAT) +# +# +03 - MSK +XX +554521+0373704 Europe/Moscow Moscow (MSK) +# +# +03:30 +XX +3540+05126 Asia/Tehran Iran +# +# +04 +XX +2518+05518 Asia/Dubai Russia; Caucasus; Persian Gulf; Seychelles; Réunion +# +# +04:30 +XX +3431+06912 Asia/Kabul Afghanistan +# +# +05 +XX +4120+06918 Asia/Tashkent Russia; Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives +# +# +05 - PKT +XX +2452+06703 Asia/Karachi Pakistan (PKT) +# +# +05:30 +XX +0656+07951 Asia/Colombo Sri Lanka +# +# +05:30 - IST +XX +2232+08822 Asia/Kolkata India (IST) +# +# +05:45 +XX +2743+08519 Asia/Kathmandu Nepal +# +# +06 +XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos +# +# +06:30 +XX +1647+09610 Asia/Yangon Myanmar; Cocos +# +# +07 +XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island +# +# +07 - WIB +XX -0610+10648 Asia/Jakarta Indonesia (WIB) +# +# +08 +XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia +# +# +08 - AWST +XX -3157+11551 Australia/Perth Western Australia (AWST) +# +# +08 - CST +XX +3114+12128 Asia/Shanghai China (CST) +# +# +08 - HKT +XX +2217+11409 Asia/Hong_Kong Hong Kong (HKT) +# +# +08 - PHT +XX +143512+1205804 Asia/Manila Philippines (PHT) +# +# +08 - WITA +XX -0507+11924 Asia/Makassar Indonesia (WITA) +# +# +08:45 +XX -3143+12852 Australia/Eucla Eucla +# +# +09 +XX +5203+11328 Asia/Chita Russia; Palau; East Timor +# +# +09 - JST +XX +353916+1394441 Asia/Tokyo Japan (JST); Eyre Bird Observatory +# +# +09 - KST +XX +3733+12658 Asia/Seoul Korea (KST) +# +# +09 - WIT +XX -0232+14042 Asia/Jayapura Indonesia (WIT) +# +# +09:30 - ACST +XX -1228+13050 Australia/Darwin Northern Territory (ACST) +# +# +09:30/+10:30 - ACST/ACDT (Australia DST) +XX -3455+13835 Australia/Adelaide South Australia (ACST/ACDT) +# +# +10 +XX +4310+13156 Asia/Vladivostok Russia; Yap; Chuuk; Papua New Guinea; Dumont d’Urville +# +# +10 - AEST +XX -2728+15302 Australia/Brisbane Queensland (AEST) +# +# +10 - ChST +XX +1328+14445 Pacific/Guam Mariana Islands (ChST) +# +# +10/+11 - AEST/AEDT (Australia DST) +XX -3352+15113 Australia/Sydney southeast Australia (AEST/AEDT) +# +# +10:30/+11 +XX -3133+15905 Australia/Lord_Howe Lord Howe Island +# +# +11 +XX -0613+15534 Pacific/Bougainville Russia; Kosrae; Bougainville; Solomons +# +# +11/+12 (Australia DST) +XX -2903+16758 Pacific/Norfolk Norfolk Island +# +# +12 +XX +5301+15839 Asia/Kamchatka Russia; Tuvalu; Fiji; etc. +# +# +12/+13 (New Zealand DST) +XX -3652+17446 Pacific/Auckland New Zealand (NZST/NZDT) +# +# +12:45/+13:45 (Chatham DST) +XX -4357-17633 Pacific/Chatham Chatham Islands +# +# +13 +XX -210800-1751200 Pacific/Tongatapu Kanton; Tokelau; Samoa (western); Tonga +# +# +14 +XX +0152-15720 Pacific/Kiritimati Kiritimati