// This file was generated by the following script:
//
//   $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
//     --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
//     --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
//     --tz_version 2025b
//     --action zonedb
//     --language arduino
//     --scope complete
//     --db_namespace zonedbc
//     --zi_namespace complete::Info
//     --start_year 1800
//     --until_year 2200
//
// using the TZ Database files
//
//   africa
//   antarctica
//   asia
//   australasia
//   backward
//   etcetera
//   europe
//   northamerica
//   southamerica
//
// from https://github.com/eggert/tz/releases/tag/2025b
//
// Supported Zones: 597 (340 zones, 257 links)
// Unsupported Zones: 0 (0 zones, 0 links)
//
// Requested Years: [1800,2200]
// Accurate Years: [-32767,32767]
//
// Original Years:  [1844,2087]
// Generated Years: [1844,2087]
// Lower/Upper Truncated: [False,False]
//
// Estimator Years: [1800,2090]
// Max Buffer Size: 8
//
// Records:
//   Infos: 597
//   Eras: 1956
//   Policies: 134
//   Rules: 2235
//
// Memory (8-bits):
//   Context: 16
//   Rules: 26820
//   Policies: 402
//   Eras: 29340
//   Zones: 4420
//   Links: 3341
//   Registry: 1194
//   Formats: 486
//   Letters: 160
//   Fragments: 150
//   Names: 5660 (original: 9094)
//   TOTAL: 71989
//
// Memory (32-bits):
//   Context: 24
//   Rules: 26820
//   Policies: 1072
//   Eras: 39120
//   Zones: 8160
//   Links: 6168
//   Registry: 2388
//   Formats: 486
//   Letters: 216
//   Fragments: 178
//   Names: 5660 (original: 9094)
//   TOTAL: 90292
//
// DO NOT EDIT

#include <zoneinfo/compat.h>
#include "zone_policies.h"
#include "zone_infos.h"

namespace ace_time {
namespace zonedbc {

//---------------------------------------------------------------------------
// ZoneContext
//---------------------------------------------------------------------------

static const char kVersionString[] ACE_TIME_PROGMEM = "2025b";
const __FlashStringHelper* const kTzDatabaseVersion =
    (const __FlashStringHelper*) kVersionString;

static const char kFragment1[] ACE_TIME_PROGMEM = "Africa/";
static const char kFragment2[] ACE_TIME_PROGMEM = "America/";
static const char kFragment3[] ACE_TIME_PROGMEM = "Antarctica/";
static const char kFragment4[] ACE_TIME_PROGMEM = "Argentina/";
static const char kFragment5[] ACE_TIME_PROGMEM = "Asia/";
static const char kFragment6[] ACE_TIME_PROGMEM = "Atlantic/";
static const char kFragment7[] ACE_TIME_PROGMEM = "Australia/";
static const char kFragment8[] ACE_TIME_PROGMEM = "Brazil/";
static const char kFragment9[] ACE_TIME_PROGMEM = "Canada/";
static const char kFragment10[] ACE_TIME_PROGMEM = "Etc/";
static const char kFragment11[] ACE_TIME_PROGMEM = "Europe/";
static const char kFragment12[] ACE_TIME_PROGMEM = "Indian/";
static const char kFragment13[] ACE_TIME_PROGMEM = "Indiana/";
static const char kFragment14[] ACE_TIME_PROGMEM = "Pacific/";

const char* const kFragments[] ACE_TIME_PROGMEM = {
  nullptr, // '\x00' cannot exist
  kFragment1, // '\x01' "Africa/"
  kFragment2, // '\x02' "America/"
  kFragment3, // '\x03' "Antarctica/"
  kFragment4, // '\x04' "Argentina/"
  kFragment5, // '\x05' "Asia/"
  kFragment6, // '\x06' "Atlantic/"
  kFragment7, // '\x07' "Australia/"
  kFragment8, // '\x08' "Brazil/"
  kFragment9, // '\x09' "Canada/"
  kFragment10, // '\x0a' "Etc/"
  kFragment11, // '\x0b' "Europe/"
  kFragment12, // '\x0c' "Indian/"
  kFragment13, // '\x0d' "Indiana/"
  kFragment14, // '\x0e' "Pacific/"

};

static const char kLetter0[] ACE_TIME_PROGMEM = "";
static const char kLetter1[] ACE_TIME_PROGMEM = "+00";
static const char kLetter2[] ACE_TIME_PROGMEM = "+02";
static const char kLetter3[] ACE_TIME_PROGMEM = "+05";
static const char kLetter4[] ACE_TIME_PROGMEM = "-0430";
static const char kLetter5[] ACE_TIME_PROGMEM = "-0530";
static const char kLetter6[] ACE_TIME_PROGMEM = "BDST";
static const char kLetter7[] ACE_TIME_PROGMEM = "BST";
static const char kLetter8[] ACE_TIME_PROGMEM = "CAT";
static const char kLetter9[] ACE_TIME_PROGMEM = "CDT";
static const char kLetter10[] ACE_TIME_PROGMEM = "CPT";
static const char kLetter11[] ACE_TIME_PROGMEM = "CST";
static const char kLetter12[] ACE_TIME_PROGMEM = "CWT";
static const char kLetter13[] ACE_TIME_PROGMEM = "D";
static const char kLetter14[] ACE_TIME_PROGMEM = "DD";
static const char kLetter15[] ACE_TIME_PROGMEM = "EDT";
static const char kLetter16[] ACE_TIME_PROGMEM = "EST";
static const char kLetter17[] ACE_TIME_PROGMEM = "GMT";
static const char kLetter18[] ACE_TIME_PROGMEM = "M";
static const char kLetter19[] ACE_TIME_PROGMEM = "MDST";
static const char kLetter20[] ACE_TIME_PROGMEM = "MMT";
static const char kLetter21[] ACE_TIME_PROGMEM = "MSD";
static const char kLetter22[] ACE_TIME_PROGMEM = "MSK";
static const char kLetter23[] ACE_TIME_PROGMEM = "MST";
static const char kLetter24[] ACE_TIME_PROGMEM = "P";
static const char kLetter25[] ACE_TIME_PROGMEM = "S";
static const char kLetter26[] ACE_TIME_PROGMEM = "W";
static const char kLetter27[] ACE_TIME_PROGMEM = "WAT";

const char* const kLetters[] ACE_TIME_PROGMEM = {
  kLetter0, // ""
  kLetter1, // "+00"
  kLetter2, // "+02"
  kLetter3, // "+05"
  kLetter4, // "-0430"
  kLetter5, // "-0530"
  kLetter6, // "BDST"
  kLetter7, // "BST"
  kLetter8, // "CAT"
  kLetter9, // "CDT"
  kLetter10, // "CPT"
  kLetter11, // "CST"
  kLetter12, // "CWT"
  kLetter13, // "D"
  kLetter14, // "DD"
  kLetter15, // "EDT"
  kLetter16, // "EST"
  kLetter17, // "GMT"
  kLetter18, // "M"
  kLetter19, // "MDST"
  kLetter20, // "MMT"
  kLetter21, // "MSD"
  kLetter22, // "MSK"
  kLetter23, // "MST"
  kLetter24, // "P"
  kLetter25, // "S"
  kLetter26, // "W"
  kLetter27, // "WAT"

};

const complete::Info::ZoneContext kZoneContext ACE_TIME_PROGMEM = {
  1800 /*startYear*/,
  2200 /*untilYear*/,
  -32767 /*startYearAccurate*/,
  32767 /*untilYearAccurate*/,
  2100 /*baseYear*/,
  8 /*maxTransitions*/,
  kVersionString /*tzVersion*/,
  15 /*numFragments*/,
  28 /*numLetters*/,
  kFragments /*fragments*/,
  kLetters /*letters*/,
};

//---------------------------------------------------------------------------
// Zones: 340
// Eras: 1956
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Zone name: Africa/Abidjan
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Abidjan[] ACE_TIME_PROGMEM = {
  // -0:16:08 - LMT 1912 Jan 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -65 /*offsetCode (-968/15)*/,
    7 /*offsetRemainder (-968%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Abidjan[] ACE_TIME_PROGMEM = "\x01" "Abidjan";

const complete::Info::ZoneInfo kZoneAfrica_Abidjan ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Abidjan /*name*/,
  0xc21305a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Algiers
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Algiers[] ACE_TIME_PROGMEM = {
  // 0:12:12 - LMT 1891 Mar 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    48 /*offsetCode (732/15)*/,
    12 /*offsetRemainder (732%15)*/,
    0 /*deltaMinutes*/,
    1891 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:09:21    -    PMT    1911 Mar 11
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    37 /*offsetCode (561/15)*/,
    6 /*offsetRemainder (561%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    Algeria    WE%sT    1940 Feb 25  2:00
  {
    &kZonePolicyAlgeria /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    2 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Algeria    CE%sT    1946 Oct  7
  {
    &kZonePolicyAlgeria /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    10 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    -    WET    1956 Jan 29
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1956 /*untilYear*/,
    1 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1963 Apr 14
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1963 /*untilYear*/,
    4 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    Algeria    WE%sT    1977 Oct 21
  {
    &kZonePolicyAlgeria /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    10 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Algeria    CE%sT    1979 Oct 26
  {
    &kZonePolicyAlgeria /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    Algeria    WE%sT    1981 May
  {
    &kZonePolicyAlgeria /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Algiers[] ACE_TIME_PROGMEM = "\x01" "Algiers";

const complete::Info::ZoneInfo kZoneAfrica_Algiers ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Algiers /*name*/,
  0xd94515c1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAfrica_Algiers /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Bissau
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Bissau[] ACE_TIME_PROGMEM = {
  // -1:02:20 - LMT 1912 Jan 1 1:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -250 /*offsetCode (-3740/15)*/,
    10 /*offsetRemainder (-3740%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -1:00    -    %z    1975
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Bissau[] ACE_TIME_PROGMEM = "\x01" "Bissau";

const complete::Info::ZoneInfo kZoneAfrica_Bissau ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Bissau /*name*/,
  0x75564141 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAfrica_Bissau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Cairo
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Cairo[] ACE_TIME_PROGMEM = {
  // 2:05:09 - LMT 1900 Oct
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    500 /*offsetCode (7509/15)*/,
    9 /*offsetRemainder (7509%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Egypt    EE%sT
  {
    &kZonePolicyEgypt /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Cairo[] ACE_TIME_PROGMEM = "\x01" "Cairo";

const complete::Info::ZoneInfo kZoneAfrica_Cairo ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Cairo /*name*/,
  0x77f8e228 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Cairo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Casablanca
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Casablanca[] ACE_TIME_PROGMEM = {
  // -0:30:20 - LMT 1913 Oct 26
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -122 /*offsetCode (-1820/15)*/,
    10 /*offsetRemainder (-1820%15)*/,
    0 /*deltaMinutes*/,
    1913 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Morocco    %z    1984 Mar 16
  {
    &kZonePolicyMorocco /*zonePolicy*/,
    "" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    -    %z    1986
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Morocco    %z    2018 Oct 28  3:00
  {
    &kZonePolicyMorocco /*zonePolicy*/,
    "" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    Morocco    %z
  {
    &kZonePolicyMorocco /*zonePolicy*/,
    "" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Casablanca[] ACE_TIME_PROGMEM = "\x01" "Casablanca";

const complete::Info::ZoneInfo kZoneAfrica_Casablanca ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Casablanca /*name*/,
  0xc59f1b33 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Casablanca /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Ceuta
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Ceuta[] ACE_TIME_PROGMEM = {
  // -0:21:16 - LMT 1901 Jan 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -86 /*offsetCode (-1276/15)*/,
    14 /*offsetRemainder (-1276%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    -    WET    1918 May  6 23:00
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    5 /*untilMonth*/,
    6 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    1:00    WEST    1918 Oct  7 23:00
  {
    nullptr /*zonePolicy*/,
    "WEST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    60 /*deltaMinutes*/,
    1918 /*untilYear*/,
    10 /*untilMonth*/,
    7 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    WET    1924
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Spain    WE%sT    1929
  {
    &kZonePolicySpain /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1929 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    WET    1967
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00 SpainAfrica WE%sT    1984 Mar 16
  {
    &kZonePolicySpainAfrica /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    -    CET    1986
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Ceuta[] ACE_TIME_PROGMEM = "\x01" "Ceuta";

const complete::Info::ZoneInfo kZoneAfrica_Ceuta ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Ceuta /*name*/,
  0x77fb46ec /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAfrica_Ceuta /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/El_Aaiun
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_El_Aaiun[] ACE_TIME_PROGMEM = {
  // -0:52:48 - LMT 1934 Jan
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -212 /*offsetCode (-3168/15)*/,
    12 /*offsetRemainder (-3168%15)*/,
    0 /*deltaMinutes*/,
    1934 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:00    -    %z    1976 Apr 14
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    4 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Morocco    %z    2018 Oct 28  3:00
  {
    &kZonePolicyMorocco /*zonePolicy*/,
    "" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    Morocco    %z
  {
    &kZonePolicyMorocco /*zonePolicy*/,
    "" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_El_Aaiun[] ACE_TIME_PROGMEM = "\x01" "El_Aaiun";

const complete::Info::ZoneInfo kZoneAfrica_El_Aaiun ACE_TIME_PROGMEM = {
  kZoneNameAfrica_El_Aaiun /*name*/,
  0x9d6fb118 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAfrica_El_Aaiun /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Johannesburg
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Johannesburg[] ACE_TIME_PROGMEM = {
  // 1:52:00 - LMT 1892 Feb 8
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    448 /*offsetCode (6720/15)*/,
    0 /*offsetRemainder (6720%15)*/,
    0 /*deltaMinutes*/,
    1892 /*untilYear*/,
    2 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:30    -    SAST    1903 Mar
  {
    nullptr /*zonePolicy*/,
    "SAST" /*format*/,
    360 /*offsetCode (5400/15)*/,
    0 /*offsetRemainder (5400%15)*/,
    0 /*deltaMinutes*/,
    1903 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    SA    SAST
  {
    &kZonePolicySA /*zonePolicy*/,
    "SAST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Johannesburg[] ACE_TIME_PROGMEM = "\x01" "Johannesburg";

const complete::Info::ZoneInfo kZoneAfrica_Johannesburg ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Johannesburg /*name*/,
  0xd5d157a0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAfrica_Johannesburg /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Juba
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Juba[] ACE_TIME_PROGMEM = {
  // 2:06:28 - LMT 1931
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    505 /*offsetCode (7588/15)*/,
    13 /*offsetRemainder (7588%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Sudan    CA%sT    2000 Jan 15 12:00
  {
    &kZonePolicySudan /*zonePolicy*/,
    "CA%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    1 /*untilMonth*/,
    15 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    EAT    2021 Feb  1 00:00
  {
    nullptr /*zonePolicy*/,
    "EAT" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2021 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    CAT
  {
    nullptr /*zonePolicy*/,
    "CAT" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Juba[] ACE_TIME_PROGMEM = "\x01" "Juba";

const complete::Info::ZoneInfo kZoneAfrica_Juba ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Juba /*name*/,
  0xd51b395c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAfrica_Juba /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Khartoum
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Khartoum[] ACE_TIME_PROGMEM = {
  // 2:10:08 - LMT 1931
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    520 /*offsetCode (7808/15)*/,
    8 /*offsetRemainder (7808%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Sudan    CA%sT    2000 Jan 15 12:00
  {
    &kZonePolicySudan /*zonePolicy*/,
    "CA%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    1 /*untilMonth*/,
    15 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    EAT    2017 Nov  1
  {
    nullptr /*zonePolicy*/,
    "EAT" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2017 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    CAT
  {
    nullptr /*zonePolicy*/,
    "CAT" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Khartoum[] ACE_TIME_PROGMEM = "\x01" "Khartoum";

const complete::Info::ZoneInfo kZoneAfrica_Khartoum ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Khartoum /*name*/,
  0xfb3d4205 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAfrica_Khartoum /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Lagos
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Lagos[] ACE_TIME_PROGMEM = {
  // 0:13:35 - LMT 1905 Jul 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    54 /*offsetCode (815/15)*/,
    5 /*offsetRemainder (815%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    -    GMT    1908 Jul  1
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:13:35    -    LMT    1914 Jan  1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    54 /*offsetCode (815/15)*/,
    5 /*offsetRemainder (815%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:30    -    %z    1919 Sep  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    120 /*offsetCode (1800/15)*/,
    0 /*offsetRemainder (1800%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    WAT
  {
    nullptr /*zonePolicy*/,
    "WAT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Lagos[] ACE_TIME_PROGMEM = "\x01" "Lagos";

const complete::Info::ZoneInfo kZoneAfrica_Lagos ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Lagos /*name*/,
  0x789bb5d0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Maputo
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Maputo[] ACE_TIME_PROGMEM = {
  // 2:10:18 - LMT 1909
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    521 /*offsetCode (7818/15)*/,
    3 /*offsetRemainder (7818%15)*/,
    0 /*deltaMinutes*/,
    1909 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    CAT
  {
    nullptr /*zonePolicy*/,
    "CAT" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Maputo[] ACE_TIME_PROGMEM = "\x01" "Maputo";

const complete::Info::ZoneInfo kZoneAfrica_Maputo ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Maputo /*name*/,
  0x8e6ca1f0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Monrovia
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Monrovia[] ACE_TIME_PROGMEM = {
  // -0:43:08 - LMT 1882
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -173 /*offsetCode (-2588/15)*/,
    7 /*offsetRemainder (-2588%15)*/,
    0 /*deltaMinutes*/,
    1882 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -0:43:08 -    MMT    1919 Mar
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    -173 /*offsetCode (-2588/15)*/,
    7 /*offsetRemainder (-2588%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -0:44:30 -    MMT    1972 Jan 7
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    -178 /*offsetCode (-2670/15)*/,
    0 /*offsetRemainder (-2670%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    1 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Monrovia[] ACE_TIME_PROGMEM = "\x01" "Monrovia";

const complete::Info::ZoneInfo kZoneAfrica_Monrovia ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Monrovia /*name*/,
  0x0ce90385 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAfrica_Monrovia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Nairobi
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Nairobi[] ACE_TIME_PROGMEM = {
  // 2:27:16 - LMT 1908 May
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    589 /*offsetCode (8836/15)*/,
    1 /*offsetRemainder (8836%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:30    -    %z    1928 Jun 30 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    600 /*offsetCode (9000/15)*/,
    0 /*offsetRemainder (9000%15)*/,
    0 /*deltaMinutes*/,
    1928 /*untilYear*/,
    6 /*untilMonth*/,
    30 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    EAT    1930 Jan  4 24:00
  {
    nullptr /*zonePolicy*/,
    "EAT" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    1 /*untilMonth*/,
    4 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:30    -    %z    1936 Dec 31 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    600 /*offsetCode (9000/15)*/,
    0 /*offsetRemainder (9000%15)*/,
    0 /*deltaMinutes*/,
    1936 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:45    -    %z    1942 Jul 31 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    660 /*offsetCode (9900/15)*/,
    0 /*offsetRemainder (9900%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    7 /*untilMonth*/,
    31 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    EAT
  {
    nullptr /*zonePolicy*/,
    "EAT" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Nairobi[] ACE_TIME_PROGMEM = "\x01" "Nairobi";

const complete::Info::ZoneInfo kZoneAfrica_Nairobi ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Nairobi /*name*/,
  0xa87ab57e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Ndjamena
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Ndjamena[] ACE_TIME_PROGMEM = {
  // 1:00:12 - LMT 1912 Jan 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    240 /*offsetCode (3612/15)*/,
    12 /*offsetRemainder (3612%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    WAT    1979 Oct 14
  {
    nullptr /*zonePolicy*/,
    "WAT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    10 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    1:00    WAST    1980 Mar  8
  {
    nullptr /*zonePolicy*/,
    "WAST" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    60 /*deltaMinutes*/,
    1980 /*untilYear*/,
    3 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    WAT
  {
    nullptr /*zonePolicy*/,
    "WAT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Ndjamena[] ACE_TIME_PROGMEM = "\x01" "Ndjamena";

const complete::Info::ZoneInfo kZoneAfrica_Ndjamena ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Ndjamena /*name*/,
  0x9fe09898 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAfrica_Ndjamena /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Sao_Tome
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Sao_Tome[] ACE_TIME_PROGMEM = {
  // 0:26:56 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    107 /*offsetCode (1616/15)*/,
    11 /*offsetRemainder (1616%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -0:36:45 -    LMT    1912 Jan  1 00:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -147 /*offsetCode (-2205/15)*/,
    0 /*offsetRemainder (-2205%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    -    GMT    2018 Jan  1 01:00
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    -    WAT    2019 Jan  1 02:00
  {
    nullptr /*zonePolicy*/,
    "WAT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    2019 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Sao_Tome[] ACE_TIME_PROGMEM = "\x01" "Sao_Tome";

const complete::Info::ZoneInfo kZoneAfrica_Sao_Tome ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Sao_Tome /*name*/,
  0x61b319d1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Sao_Tome /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Tripoli
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Tripoli[] ACE_TIME_PROGMEM = {
  // 0:52:44 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    210 /*offsetCode (3164/15)*/,
    14 /*offsetRemainder (3164%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Libya    CE%sT    1959
  {
    &kZonePolicyLibya /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1959 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1982
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Libya    CE%sT    1990 May  4
  {
    &kZonePolicyLibya /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    5 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1996 Sep 30
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Libya    CE%sT    1997 Oct  4
  {
    &kZonePolicyLibya /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    10 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2012 Nov 10  2:00
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    11 /*untilMonth*/,
    10 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Libya    CE%sT    2013 Oct 25  2:00
  {
    &kZonePolicyLibya /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    2013 /*untilYear*/,
    10 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Tripoli[] ACE_TIME_PROGMEM = "\x01" "Tripoli";

const complete::Info::ZoneInfo kZoneAfrica_Tripoli ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Tripoli /*name*/,
  0x9dfebd3d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAfrica_Tripoli /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Tunis
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Tunis[] ACE_TIME_PROGMEM = {
  // 0:40:44 - LMT 1881 May 12
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    162 /*offsetCode (2444/15)*/,
    14 /*offsetRemainder (2444%15)*/,
    0 /*deltaMinutes*/,
    1881 /*untilYear*/,
    5 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:09:21    -    PMT    1911 Mar 11
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    37 /*offsetCode (561/15)*/,
    6 /*offsetRemainder (561%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Tunisia    CE%sT
  {
    &kZonePolicyTunisia /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Tunis[] ACE_TIME_PROGMEM = "\x01" "Tunis";

const complete::Info::ZoneInfo kZoneAfrica_Tunis ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Tunis /*name*/,
  0x79378e6d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAfrica_Tunis /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Africa/Windhoek
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAfrica_Windhoek[] ACE_TIME_PROGMEM = {
  // 1:08:24 - LMT 1892 Feb 8
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    273 /*offsetCode (4104/15)*/,
    9 /*offsetRemainder (4104%15)*/,
    0 /*deltaMinutes*/,
    1892 /*untilYear*/,
    2 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:30    -    %z    1903 Mar
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    360 /*offsetCode (5400/15)*/,
    0 /*offsetRemainder (5400%15)*/,
    0 /*deltaMinutes*/,
    1903 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    SAST    1942 Sep 20  2:00
  {
    nullptr /*zonePolicy*/,
    "SAST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    20 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    1:00    SAST    1943 Mar 21  2:00
  {
    nullptr /*zonePolicy*/,
    "SAST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    1943 /*untilYear*/,
    3 /*untilMonth*/,
    21 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    SAST    1990 Mar 21
  {
    nullptr /*zonePolicy*/,
    "SAST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    3 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Namibia    %s
  {
    &kZonePolicyNamibia /*zonePolicy*/,
    "%" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAfrica_Windhoek[] ACE_TIME_PROGMEM = "\x01" "Windhoek";

const complete::Info::ZoneInfo kZoneAfrica_Windhoek ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Windhoek /*name*/,
  0x789c9bd3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Windhoek /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Adak
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Adak[] ACE_TIME_PROGMEM = {
  // 12:13:22 - LMT 1867 Oct 19 12:44:35
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2933 /*offsetCode (44002/15)*/,
    7 /*offsetRemainder (44002%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3058 /*untilTimeCode (45875/15)*/,
    5 /*untilTimeModifier (kAtcSuffixW + seconds=5)*/,
  },
  //             -11:46:38 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2827 /*offsetCode (-42398/15)*/,
    7 /*offsetRemainder (-42398%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    NST    1942
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    US    N%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "N%T" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    NST    1967 Apr
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    BST    1969
  {
    nullptr /*zonePolicy*/,
    "BST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    US    B%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "B%T" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    US    AH%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AH%T" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    US    H%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "H%T" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Adak[] ACE_TIME_PROGMEM = "\x02" "Adak";

const complete::Info::ZoneInfo kZoneAmerica_Adak ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Adak /*name*/,
  0x97fe49d7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Adak /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Anchorage
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Anchorage[] ACE_TIME_PROGMEM = {
  // 14:00:24 - LMT 1867 Oct 19 14:31:37
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3361 /*offsetCode (50424/15)*/,
    9 /*offsetRemainder (50424%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3486 /*untilTimeCode (52297/15)*/,
    7 /*untilTimeModifier (kAtcSuffixW + seconds=7)*/,
  },
  //              -9:59:36 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2399 /*offsetCode (-35976/15)*/,
    9 /*offsetRemainder (-35976%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    -    AST    1942
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    US    A%sT    1967 Apr
  {
    &kZonePolicyUS /*zonePolicy*/,
    "A%T" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    -    AHST    1969
  {
    nullptr /*zonePolicy*/,
    "AHST" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    US    AH%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AH%T" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Anchorage[] ACE_TIME_PROGMEM = "\x02" "Anchorage";

const complete::Info::ZoneInfo kZoneAmerica_Anchorage ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Anchorage /*name*/,
  0x5a79260e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Anchorage /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Araguaina
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Araguaina[] ACE_TIME_PROGMEM = {
  // -3:12:48 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -772 /*offsetCode (-11568/15)*/,
    12 /*offsetRemainder (-11568%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1990 Sep 17
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1995 Sep 14
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1995 /*untilYear*/,
    9 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2003 Sep 24
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2003 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2012 Oct 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    10 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2013 Sep
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2013 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Araguaina[] ACE_TIME_PROGMEM = "\x02" "Araguaina";

const complete::Info::ZoneInfo kZoneAmerica_Araguaina ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Araguaina /*name*/,
  0x6f9a3aef /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Araguaina /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Buenos_Aires
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = {
  // -3:53:48 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -936 /*offsetCode (-14028/15)*/,
    12 /*offsetRemainder (-14028%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "\x04" "Buenos_Aires";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Buenos_Aires ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Buenos_Aires /*name*/,
  0xd43b4c0d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Catamarca
// Eras: 12
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = {
  // -4:23:08 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1053 /*offsetCode (-15788/15)*/,
    7 /*offsetRemainder (-15788%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jun 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Catamarca[] ACE_TIME_PROGMEM = "\x02" "\x04" "Catamarca";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Catamarca ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Catamarca /*name*/,
  0x8d40986b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Cordoba
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = {
  // -4:16:48 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Cordoba[] ACE_TIME_PROGMEM = "\x02" "\x04" "Cordoba";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Cordoba ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Cordoba /*name*/,
  0xbfccc308 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Jujuy
// Eras: 13
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = {
  // -4:21:12 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1045 /*offsetCode (-15672/15)*/,
    3 /*offsetRemainder (-15672%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1990 Mar  4
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    3 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1990 Oct 28
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    1991 Mar 17
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct  6
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    1:00    %z    1992
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    60 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Jujuy[] ACE_TIME_PROGMEM = "\x02" "\x04" "Jujuy";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Jujuy ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Jujuy /*name*/,
  0x5f2f46c5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/La_Rioja
// Eras: 12
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = {
  // -4:27:24 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1070 /*offsetCode (-16044/15)*/,
    6 /*offsetRemainder (-16044%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  1
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 May  7
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    5 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jun 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_La_Rioja[] ACE_TIME_PROGMEM = "\x02" "\x04" "La_Rioja";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_La_Rioja ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_La_Rioja /*name*/,
  0xa46b7eef /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAmerica_Argentina_La_Rioja /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Mendoza
// Eras: 16
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = {
  // -4:35:16 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1102 /*offsetCode (-16516/15)*/,
    14 /*offsetRemainder (-16516%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1990 Mar  4
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    3 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1990 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    1991 Mar  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    1992 Mar  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1992 Oct 18
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 May 23
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    5 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Sep 26
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    9 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Mendoza[] ACE_TIME_PROGMEM = "\x02" "\x04" "Mendoza";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Mendoza ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Mendoza /*name*/,
  0xa9f72d5c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  16 /*numEras*/,
  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Rio_Gallegos
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = {
  // -4:36:52 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1108 /*offsetCode (-16612/15)*/,
    8 /*offsetRemainder (-16612%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jun 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Rio_Gallegos[] ACE_TIME_PROGMEM = "\x02" "\x04" "Rio_Gallegos";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Rio_Gallegos ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Rio_Gallegos /*name*/,
  0xc5b0f565 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Argentina_Rio_Gallegos /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Salta
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = {
  // -4:21:40 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1047 /*offsetCode (-15700/15)*/,
    5 /*offsetRemainder (-15700%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Salta[] ACE_TIME_PROGMEM = "\x02" "\x04" "Salta";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Salta ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Salta /*name*/,
  0x5fc73403 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Argentina_Salta /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/San_Juan
// Eras: 12
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = {
  // -4:34:04 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1097 /*offsetCode (-16444/15)*/,
    11 /*offsetRemainder (-16444%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  1
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 May  7
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    5 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 May 31
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    5 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jul 25
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    7 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_San_Juan[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Juan";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Juan ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_San_Juan /*name*/,
  0x3e1009bd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAmerica_Argentina_San_Juan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/San_Luis
// Eras: 16
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = {
  // -4:25:24 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1062 /*offsetCode (-15924/15)*/,
    6 /*offsetRemainder (-15924%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1990
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    1:00    %z    1990 Mar 14
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    60 /*deltaMinutes*/,
    1990 /*untilYear*/,
    3 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1990 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    1991 Mar  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1999 Oct  3
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    2000 Mar  3
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 May 31
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    5 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jul 25
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    7 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Jan 21
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    1 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    SanLuis    %z    2009 Oct 11
  {
    &kZonePolicySanLuis /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2009 /*untilYear*/,
    10 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_San_Luis[] ACE_TIME_PROGMEM = "\x02" "\x04" "San_Luis";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_San_Luis ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_San_Luis /*name*/,
  0x3e11238c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  16 /*numEras*/,
  kZoneEraAmerica_Argentina_San_Luis /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Tucuman
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = {
  // -4:20:52 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1044 /*offsetCode (-15652/15)*/,
    8 /*offsetRemainder (-15652%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1991 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1991 Oct 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jun 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Tucuman[] ACE_TIME_PROGMEM = "\x02" "\x04" "Tucuman";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Tucuman ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Tucuman /*name*/,
  0xe96399eb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Argentina_Tucuman /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Argentina/Ushuaia
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = {
  // -4:33:12 - LMT 1894 Oct 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1093 /*offsetCode (-16392/15)*/,
    3 /*offsetRemainder (-16392%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:16:48 -    CMT    1920 May
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1028 /*offsetCode (-15408/15)*/,
    12 /*offsetRemainder (-15408%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1930 Dec
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1999 Oct  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    2000 Mar  3
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    3 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2004 May 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    5 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Jun 20
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    2008 Oct 18
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Argentina_Ushuaia[] ACE_TIME_PROGMEM = "\x02" "\x04" "Ushuaia";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_Ushuaia ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_Ushuaia /*name*/,
  0x320dcdde /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Argentina_Ushuaia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Asuncion
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Asuncion[] ACE_TIME_PROGMEM = {
  // -3:50:40 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -923 /*offsetCode (-13840/15)*/,
    5 /*offsetRemainder (-13840%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:50:40 -    AMT    1931 Oct 10
  {
    nullptr /*zonePolicy*/,
    "AMT" /*format*/,
    -923 /*offsetCode (-13840/15)*/,
    5 /*offsetRemainder (-13840%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    10 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1972 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1974 Apr
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Para    %z    2024 Oct 15
  {
    &kZonePolicyPara /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2024 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Asuncion[] ACE_TIME_PROGMEM = "\x02" "Asuncion";

const complete::Info::ZoneInfo kZoneAmerica_Asuncion ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Asuncion /*name*/,
  0x50ec79a6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Asuncion /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Bahia
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Bahia[] ACE_TIME_PROGMEM = {
  // -2:34:04 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -617 /*offsetCode (-9244/15)*/,
    11 /*offsetRemainder (-9244%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2003 Sep 24
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2003 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2011 Oct 16
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    10 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2012 Oct 21
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    10 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Bahia[] ACE_TIME_PROGMEM = "\x02" "Bahia";

const complete::Info::ZoneInfo kZoneAmerica_Bahia ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Bahia /*name*/,
  0x97d815fb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Bahia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Bahia_Banderas
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = {
  // -7:01:00 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1684 /*offsetCode (-25260/15)*/,
    0 /*offsetRemainder (-25260%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1942 Apr 24
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1970
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1970 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    2010 Apr  4  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    4 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Bahia_Banderas[] ACE_TIME_PROGMEM = "\x02" "Bahia_Banderas";

const complete::Info::ZoneInfo kZoneAmerica_Bahia_Banderas ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Bahia_Banderas /*name*/,
  0x14f6329a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Bahia_Banderas /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Barbados
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Barbados[] ACE_TIME_PROGMEM = {
  // -3:58:29 - LMT 1911 Aug 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -954 /*offsetCode (-14309/15)*/,
    1 /*offsetRemainder (-14309%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    8 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Barb    A%sT    1944
  {
    &kZonePolicyBarb /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Barb    AST/-0330 1945
  {
    &kZonePolicyBarb /*zonePolicy*/,
    "AST/-0330" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Barb    A%sT
  {
    &kZonePolicyBarb /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Barbados[] ACE_TIME_PROGMEM = "\x02" "Barbados";

const complete::Info::ZoneInfo kZoneAmerica_Barbados ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Barbados /*name*/,
  0xcbbc3b04 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Barbados /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Belem
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Belem[] ACE_TIME_PROGMEM = {
  // -3:13:56 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -776 /*offsetCode (-11636/15)*/,
    4 /*offsetRemainder (-11636%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Belem[] ACE_TIME_PROGMEM = "\x02" "Belem";

const complete::Info::ZoneInfo kZoneAmerica_Belem ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Belem /*name*/,
  0x97da580b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Belem /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Belize
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Belize[] ACE_TIME_PROGMEM = {
  // -5:52:48 - LMT 1912 Apr 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1412 /*offsetCode (-21168/15)*/,
    12 /*offsetRemainder (-21168%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Belize    %s
  {
    &kZonePolicyBelize /*zonePolicy*/,
    "%" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Belize[] ACE_TIME_PROGMEM = "\x02" "Belize";

const complete::Info::ZoneInfo kZoneAmerica_Belize ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Belize /*name*/,
  0x93256c81 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_Belize /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Boa_Vista
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Boa_Vista[] ACE_TIME_PROGMEM = {
  // -4:02:40 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -971 /*offsetCode (-14560/15)*/,
    5 /*offsetRemainder (-14560%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1999 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    2000 Oct 15
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Boa_Vista[] ACE_TIME_PROGMEM = "\x02" "Boa_Vista";

const complete::Info::ZoneInfo kZoneAmerica_Boa_Vista ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Boa_Vista /*name*/,
  0x0a7b7efe /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Boa_Vista /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Bogota
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Bogota[] ACE_TIME_PROGMEM = {
  // -4:56:16 - LMT 1884 Mar 13
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1186 /*offsetCode (-17776/15)*/,
    14 /*offsetRemainder (-17776%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    3 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:56:16 -    BMT    1914 Nov 23
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    -1186 /*offsetCode (-17776/15)*/,
    14 /*offsetRemainder (-17776%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    11 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    CO    %z
  {
    &kZonePolicyCO /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Bogota[] ACE_TIME_PROGMEM = "\x02" "Bogota";

const complete::Info::ZoneInfo kZoneAmerica_Bogota ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Bogota /*name*/,
  0x93d7bc62 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Bogota /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Boise
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Boise[] ACE_TIME_PROGMEM = {
  // -7:44:49 - LMT 1883 Nov 18 20:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1860 /*offsetCode (-27889/15)*/,
    11 /*offsetRemainder (-27889%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4800 /*untilTimeCode (72000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -8:00    US    P%sT    1923 May 13  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1923 /*untilYear*/,
    5 /*untilMonth*/,
    13 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1974
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1974 Feb  3  2:00
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    2 /*untilMonth*/,
    3 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Boise[] ACE_TIME_PROGMEM = "\x02" "Boise";

const complete::Info::ZoneInfo kZoneAmerica_Boise ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Boise /*name*/,
  0x97dfc8d8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Boise /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Cambridge_Bay
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = {
  // 0 - -00 1920
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    NT_YK    M%sT    1999 Oct 31  2:00
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT    2000 Oct 29  2:00
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2000 Nov  5  0:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    11 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    2001 Apr  1  3:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Canada    M%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Cambridge_Bay[] ACE_TIME_PROGMEM = "\x02" "Cambridge_Bay";

const complete::Info::ZoneInfo kZoneAmerica_Cambridge_Bay ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cambridge_Bay /*name*/,
  0xd5a44aff /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Cambridge_Bay /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Campo_Grande
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Campo_Grande[] ACE_TIME_PROGMEM = {
  // -3:38:28 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -874 /*offsetCode (-13108/15)*/,
    2 /*offsetRemainder (-13108%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Campo_Grande[] ACE_TIME_PROGMEM = "\x02" "Campo_Grande";

const complete::Info::ZoneInfo kZoneAmerica_Campo_Grande ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Campo_Grande /*name*/,
  0xfec3e7a6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_Campo_Grande /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Cancun
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Cancun[] ACE_TIME_PROGMEM = {
  // -5:47:04 - LMT 1922 Jan 1 6:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1389 /*offsetCode (-20824/15)*/,
    11 /*offsetRemainder (-20824%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1440 /*untilTimeCode (21600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    -    CST    1981 Dec 26  2:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    12 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1983 Jan  4  0:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    1 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    1997 Oct 26  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Mexico    E%sT    1998 Aug  2  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    8 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    2015 Feb  1  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Cancun[] ACE_TIME_PROGMEM = "\x02" "Cancun";

const complete::Info::ZoneInfo kZoneAmerica_Cancun ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cancun /*name*/,
  0x953331be /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Cancun /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Caracas
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Caracas[] ACE_TIME_PROGMEM = {
  // -4:27:44 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1071 /*offsetCode (-16064/15)*/,
    1 /*offsetRemainder (-16064%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:27:40 -    CMT    1912 Feb 12
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1071 /*offsetCode (-16060/15)*/,
    5 /*offsetRemainder (-16060%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    2 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:30    -    %z    1965 Jan  1  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1080 /*offsetCode (-16200/15)*/,
    0 /*offsetRemainder (-16200%15)*/,
    0 /*deltaMinutes*/,
    1965 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2007 Dec  9  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    12 /*untilMonth*/,
    9 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:30    -    %z    2016 May  1  2:30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1080 /*offsetCode (-16200/15)*/,
    0 /*offsetRemainder (-16200%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    600 /*untilTimeCode (9000/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Caracas[] ACE_TIME_PROGMEM = "\x02" "Caracas";

const complete::Info::ZoneInfo kZoneAmerica_Caracas ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Caracas /*name*/,
  0x3be064f4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Caracas /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Cayenne
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Cayenne[] ACE_TIME_PROGMEM = {
  // -3:29:20 - LMT 1911 Jul 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -838 /*offsetCode (-12560/15)*/,
    10 /*offsetRemainder (-12560%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1967 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Cayenne[] ACE_TIME_PROGMEM = "\x02" "Cayenne";

const complete::Info::ZoneInfo kZoneAmerica_Cayenne ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cayenne /*name*/,
  0x3c617269 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Cayenne /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Chicago
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Chicago[] ACE_TIME_PROGMEM = {
  // -5:50:36 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1403 /*offsetCode (-21036/15)*/,
    9 /*offsetRemainder (-21036%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1920
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Chicago    C%sT    1936 Mar  1  2:00
  {
    &kZonePolicyChicago /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1936 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1936 Nov 15  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1936 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Chicago    C%sT    1942
  {
    &kZonePolicyChicago /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Chicago    C%sT    1967
  {
    &kZonePolicyChicago /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Chicago[] ACE_TIME_PROGMEM = "\x02" "Chicago";

const complete::Info::ZoneInfo kZoneAmerica_Chicago ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Chicago /*name*/,
  0x4b92b5d4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Chicago /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Chihuahua
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Chihuahua[] ACE_TIME_PROGMEM = {
  // -7:04:20 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1698 /*offsetCode (-25460/15)*/,
    10 /*offsetRemainder (-25460%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1996
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    1998
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1998 Apr Sun>=1  3:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    4 /*untilMonth*/,
    5 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    2022 Oct 30  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Chihuahua[] ACE_TIME_PROGMEM = "\x02" "Chihuahua";

const complete::Info::ZoneInfo kZoneAmerica_Chihuahua ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Chihuahua /*name*/,
  0x8827d776 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Chihuahua /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Ciudad_Juarez
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = {
  // -7:05:56 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1704 /*offsetCode (-25556/15)*/,
    4 /*offsetRemainder (-25556%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1996
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    1998
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1998 Apr Sun>=1  3:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    4 /*untilMonth*/,
    5 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    2010
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    2022 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    2022 Nov 30  0:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Ciudad_Juarez[] ACE_TIME_PROGMEM = "\x02" "Ciudad_Juarez";

const complete::Info::ZoneInfo kZoneAmerica_Ciudad_Juarez ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Ciudad_Juarez /*name*/,
  0x7347fc60 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Ciudad_Juarez /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Costa_Rica
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Costa_Rica[] ACE_TIME_PROGMEM = {
  // -5:36:13 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1345 /*offsetCode (-20173/15)*/,
    2 /*offsetRemainder (-20173%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:36:13 -    SJMT    1921 Jan 15
  {
    nullptr /*zonePolicy*/,
    "SJMT" /*format*/,
    -1345 /*offsetCode (-20173/15)*/,
    2 /*offsetRemainder (-20173%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    1 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    CR    C%sT
  {
    &kZonePolicyCR /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Costa_Rica[] ACE_TIME_PROGMEM = "\x02" "Costa_Rica";

const complete::Info::ZoneInfo kZoneAmerica_Costa_Rica ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Costa_Rica /*name*/,
  0x63ff66be /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Costa_Rica /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Coyhaique
// Eras: 14
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Coyhaique[] ACE_TIME_PROGMEM = {
  // -4:48:16 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1154 /*offsetCode (-17296/15)*/,
    14 /*offsetRemainder (-17296%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1910 Jan 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1910 /*untilYear*/,
    1 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1916 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1918 Sep 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    9 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1919 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1927 Sep  1
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Chile    %z    1932 Sep  1
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1942 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1942 Aug  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1946 Aug 28 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    8 /*untilMonth*/,
    28 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    1:00    %z    1947 Mar 31 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    60 /*deltaMinutes*/,
    1947 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1947 May 21 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    5 /*untilMonth*/,
    21 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Chile    %z    2025 Mar 20
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2025 /*untilYear*/,
    3 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Coyhaique[] ACE_TIME_PROGMEM = "\x02" "Coyhaique";

const complete::Info::ZoneInfo kZoneAmerica_Coyhaique ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Coyhaique /*name*/,
  0xcc3314ee /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  14 /*numEras*/,
  kZoneEraAmerica_Coyhaique /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Cuiaba
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Cuiaba[] ACE_TIME_PROGMEM = {
  // -3:44:20 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -898 /*offsetCode (-13460/15)*/,
    10 /*offsetRemainder (-13460%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    2003 Sep 24
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2003 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2004 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Cuiaba[] ACE_TIME_PROGMEM = "\x02" "Cuiaba";

const complete::Info::ZoneInfo kZoneAmerica_Cuiaba ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cuiaba /*name*/,
  0x969a52eb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Cuiaba /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Danmarkshavn
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = {
  // -1:14:40 - LMT 1916 Jul 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -299 /*offsetCode (-4480/15)*/,
    5 /*offsetRemainder (-4480%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1980 Apr  6  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    EU    %z    1996
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    -    GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Danmarkshavn[] ACE_TIME_PROGMEM = "\x02" "Danmarkshavn";

const complete::Info::ZoneInfo kZoneAmerica_Danmarkshavn ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Danmarkshavn /*name*/,
  0xf554d204 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Danmarkshavn /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Dawson
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Dawson[] ACE_TIME_PROGMEM = {
  // -9:17:40 - LMT 1900 Aug 20
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2231 /*offsetCode (-33460/15)*/,
    5 /*offsetRemainder (-33460%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -9:00    NT_YK    Y%sT    1965
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1965 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -9:00    Yukon    Y%sT    1973 Oct 28  0:00
  {
    &kZonePolicyYukon /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1980
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Canada    P%sT    2020 Nov  1
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2020 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Dawson[] ACE_TIME_PROGMEM = "\x02" "Dawson";

const complete::Info::ZoneInfo kZoneAmerica_Dawson ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Dawson /*name*/,
  0x978d8d12 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Dawson /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Dawson_Creek
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = {
  // -8:00:56 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1924 /*offsetCode (-28856/15)*/,
    4 /*offsetRemainder (-28856%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Canada    P%sT    1947
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Vanc    P%sT    1972 Aug 30  2:00
  {
    &kZonePolicyVanc /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    8 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Dawson_Creek[] ACE_TIME_PROGMEM = "\x02" "Dawson_Creek";

const complete::Info::ZoneInfo kZoneAmerica_Dawson_Creek ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Dawson_Creek /*name*/,
  0x6cf24e5b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Dawson_Creek /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Denver
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Denver[] ACE_TIME_PROGMEM = {
  // -6:59:56 - LMT 1883 Nov 18 19:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1680 /*offsetCode (-25196/15)*/,
    4 /*offsetRemainder (-25196%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4560 /*untilTimeCode (68400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1920
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Denver    M%sT    1942
  {
    &kZonePolicyDenver /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Denver    M%sT    1967
  {
    &kZonePolicyDenver /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Denver[] ACE_TIME_PROGMEM = "\x02" "Denver";

const complete::Info::ZoneInfo kZoneAmerica_Denver ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Denver /*name*/,
  0x97d10b2a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Denver /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Detroit
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Detroit[] ACE_TIME_PROGMEM = {
  // -5:32:11 - LMT 1905
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1329 /*offsetCode (-19931/15)*/,
    4 /*offsetRemainder (-19931%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1915 May 15  2:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1915 /*untilYear*/,
    5 /*untilMonth*/,
    15 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1942
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Detroit    E%sT    1967 Jun 14  0:01
  {
    &kZonePolicyDetroit /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    6 /*untilMonth*/,
    14 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1969
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1973
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1975
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1975 Apr 27  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Detroit[] ACE_TIME_PROGMEM = "\x02" "Detroit";

const complete::Info::ZoneInfo kZoneAmerica_Detroit ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Detroit /*name*/,
  0x925cfbc1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Detroit /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Edmonton
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Edmonton[] ACE_TIME_PROGMEM = {
  // -7:33:52 - LMT 1906 Sep
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1816 /*offsetCode (-27232/15)*/,
    8 /*offsetRemainder (-27232%15)*/,
    0 /*deltaMinutes*/,
    1906 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Edm    M%sT    1987
  {
    &kZonePolicyEdm /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1987 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Canada    M%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Edmonton[] ACE_TIME_PROGMEM = "\x02" "Edmonton";

const complete::Info::ZoneInfo kZoneAmerica_Edmonton ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Edmonton /*name*/,
  0x6cb9484a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Edmonton /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Eirunepe
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Eirunepe[] ACE_TIME_PROGMEM = {
  // -4:39:28 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1118 /*offsetCode (-16768/15)*/,
    2 /*offsetRemainder (-16768%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1993 Sep 28
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    9 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Brazil    %z    1994 Sep 22
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    9 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    2008 Jun 24  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    6 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2013 Nov 10
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2013 /*untilYear*/,
    11 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Eirunepe[] ACE_TIME_PROGMEM = "\x02" "Eirunepe";

const complete::Info::ZoneInfo kZoneAmerica_Eirunepe ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Eirunepe /*name*/,
  0xf9b29683 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Eirunepe /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/El_Salvador
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_El_Salvador[] ACE_TIME_PROGMEM = {
  // -5:56:48 - LMT 1921
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1428 /*offsetCode (-21408/15)*/,
    12 /*offsetRemainder (-21408%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Salv    C%sT
  {
    &kZonePolicySalv /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_El_Salvador[] ACE_TIME_PROGMEM = "\x02" "El_Salvador";

const complete::Info::ZoneInfo kZoneAmerica_El_Salvador ACE_TIME_PROGMEM = {
  kZoneNameAmerica_El_Salvador /*name*/,
  0x752ad652 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_El_Salvador /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Fort_Nelson
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = {
  // -8:10:47 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1964 /*offsetCode (-29447/15)*/,
    13 /*offsetRemainder (-29447%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Vanc    P%sT    1946
  {
    &kZonePolicyVanc /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1947
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Vanc    P%sT    1987
  {
    &kZonePolicyVanc /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1987 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Canada    P%sT    2015 Mar  8  2:00
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    3 /*untilMonth*/,
    8 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Fort_Nelson[] ACE_TIME_PROGMEM = "\x02" "Fort_Nelson";

const complete::Info::ZoneInfo kZoneAmerica_Fort_Nelson ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Fort_Nelson /*name*/,
  0x3f437e0f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Fort_Nelson /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Fortaleza
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Fortaleza[] ACE_TIME_PROGMEM = {
  // -2:34:00 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -616 /*offsetCode (-9240/15)*/,
    0 /*offsetRemainder (-9240%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1990 Sep 17
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1999 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2000 Oct 22
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2001 Sep 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2002 Oct  1
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Fortaleza[] ACE_TIME_PROGMEM = "\x02" "Fortaleza";

const complete::Info::ZoneInfo kZoneAmerica_Fortaleza ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Fortaleza /*name*/,
  0x2ad018ee /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Fortaleza /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Glace_Bay
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Glace_Bay[] ACE_TIME_PROGMEM = {
  // -3:59:48 - LMT 1902 Jun 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -960 /*offsetCode (-14388/15)*/,
    12 /*offsetRemainder (-14388%15)*/,
    0 /*deltaMinutes*/,
    1902 /*untilYear*/,
    6 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1953
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1953 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Halifax    A%sT    1954
  {
    &kZonePolicyHalifax /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1954 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    1972
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Halifax    A%sT    1974
  {
    &kZonePolicyHalifax /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Glace_Bay[] ACE_TIME_PROGMEM = "\x02" "Glace_Bay";

const complete::Info::ZoneInfo kZoneAmerica_Glace_Bay ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Glace_Bay /*name*/,
  0x9681f8dd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Glace_Bay /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Goose_Bay
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Goose_Bay[] ACE_TIME_PROGMEM = {
  // -4:01:40 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -967 /*offsetCode (-14500/15)*/,
    5 /*offsetRemainder (-14500%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 -    NST    1918
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 Canada N%sT    1919
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "N%T" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 -    NST    1935 Mar 30
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1935 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    -    NST    1936
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1936 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    StJohns    N%sT    1942 May 11
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    Canada    N%sT    1946
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    StJohns    N%sT    1966 Mar 15  2:00
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    3 /*untilMonth*/,
    15 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    StJohns    A%sT    2011 Nov
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Goose_Bay[] ACE_TIME_PROGMEM = "\x02" "Goose_Bay";

const complete::Info::ZoneInfo kZoneAmerica_Goose_Bay ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Goose_Bay /*name*/,
  0xb649541e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Goose_Bay /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Grand_Turk
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Grand_Turk[] ACE_TIME_PROGMEM = {
  // -4:44:32 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1139 /*offsetCode (-17072/15)*/,
    13 /*offsetRemainder (-17072%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:07:10 -    KMT    1912 Feb
  {
    nullptr /*zonePolicy*/,
    "KMT" /*format*/,
    -1229 /*offsetCode (-18430/15)*/,
    5 /*offsetRemainder (-18430%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1979
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    2015 Mar  8  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    3 /*untilMonth*/,
    8 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    2018 Mar 11  3:00
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Grand_Turk[] ACE_TIME_PROGMEM = "\x02" "Grand_Turk";

const complete::Info::ZoneInfo kZoneAmerica_Grand_Turk ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Grand_Turk /*name*/,
  0x6e216197 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Grand_Turk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Guatemala
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Guatemala[] ACE_TIME_PROGMEM = {
  // -6:02:04 - LMT 1918 Oct 5
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1449 /*offsetCode (-21724/15)*/,
    11 /*offsetRemainder (-21724%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Guat    C%sT
  {
    &kZonePolicyGuat /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Guatemala[] ACE_TIME_PROGMEM = "\x02" "Guatemala";

const complete::Info::ZoneInfo kZoneAmerica_Guatemala ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Guatemala /*name*/,
  0x0c8259f7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_Guatemala /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Guayaquil
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Guayaquil[] ACE_TIME_PROGMEM = {
  // -5:19:20 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1278 /*offsetCode (-19160/15)*/,
    10 /*offsetRemainder (-19160%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:14:00 -    QMT    1931
  {
    nullptr /*zonePolicy*/,
    "QMT" /*format*/,
    -1256 /*offsetCode (-18840/15)*/,
    0 /*offsetRemainder (-18840%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Ecuador    %z
  {
    &kZonePolicyEcuador /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Guayaquil[] ACE_TIME_PROGMEM = "\x02" "Guayaquil";

const complete::Info::ZoneInfo kZoneAmerica_Guayaquil ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Guayaquil /*name*/,
  0x17e64958 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Guayaquil /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Guyana
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Guyana[] ACE_TIME_PROGMEM = {
  // -3:52:39 - LMT 1911 Aug 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -931 /*offsetCode (-13959/15)*/,
    6 /*offsetRemainder (-13959%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1915 Mar  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1915 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:45    -    %z    1975 Aug  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -900 /*offsetCode (-13500/15)*/,
    0 /*offsetRemainder (-13500%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1992 Mar 29  1:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Guyana[] ACE_TIME_PROGMEM = "\x02" "Guyana";

const complete::Info::ZoneInfo kZoneAmerica_Guyana ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Guyana /*name*/,
  0x9ff7bd0b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Guyana /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Halifax
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Halifax[] ACE_TIME_PROGMEM = {
  // -4:14:24 - LMT 1902 Jun 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1018 /*offsetCode (-15264/15)*/,
    6 /*offsetRemainder (-15264%15)*/,
    0 /*deltaMinutes*/,
    1902 /*untilYear*/,
    6 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Halifax    A%sT    1918
  {
    &kZonePolicyHalifax /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1919
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Halifax    A%sT    1942 Feb  9  2:00s
  {
    &kZonePolicyHalifax /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    9 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1946
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Halifax    A%sT    1974
  {
    &kZonePolicyHalifax /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Halifax[] ACE_TIME_PROGMEM = "\x02" "Halifax";

const complete::Info::ZoneInfo kZoneAmerica_Halifax ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Halifax /*name*/,
  0xbc5b7183 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Halifax /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Havana
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Havana[] ACE_TIME_PROGMEM = {
  // -5:29:28 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1318 /*offsetCode (-19768/15)*/,
    2 /*offsetRemainder (-19768%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:29:36 -    HMT    1925 Jul 19 12:00
  {
    nullptr /*zonePolicy*/,
    "HMT" /*format*/,
    -1319 /*offsetCode (-19776/15)*/,
    9 /*offsetRemainder (-19776%15)*/,
    0 /*deltaMinutes*/,
    1925 /*untilYear*/,
    7 /*untilMonth*/,
    19 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Cuba    C%sT
  {
    &kZonePolicyCuba /*zonePolicy*/,
    "C%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Havana[] ACE_TIME_PROGMEM = "\x02" "Havana";

const complete::Info::ZoneInfo kZoneAmerica_Havana ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Havana /*name*/,
  0xa0e15675 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Havana /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Hermosillo
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Hermosillo[] ACE_TIME_PROGMEM = {
  // -7:23:52 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1776 /*offsetCode (-26632/15)*/,
    8 /*offsetRemainder (-26632%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1942 Apr 24
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1996
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1999
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Hermosillo[] ACE_TIME_PROGMEM = "\x02" "Hermosillo";

const complete::Info::ZoneInfo kZoneAmerica_Hermosillo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Hermosillo /*name*/,
  0x065d21c4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Hermosillo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Indianapolis
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = {
  // -5:44:38 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1379 /*offsetCode (-20678/15)*/,
    7 /*offsetRemainder (-20678%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1920
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Indianapolis C%sT    1942
  {
    &kZonePolicyIndianapolis /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Indianapolis C%sT    1955 Apr 24  2:00
  {
    &kZonePolicyIndianapolis /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1955 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1957 Sep 29  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    9 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1958 Apr 27  2:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1958 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1969
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1971
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Indianapolis";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Indianapolis ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Indianapolis /*name*/,
  0x28a669a4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Knox
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = {
  // -5:46:30 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1386 /*offsetCode (-20790/15)*/,
    0 /*offsetRemainder (-20790%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1947
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Starke    C%sT    1962 Apr 29  2:00
  {
    &kZonePolicyStarke /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1962 /*untilYear*/,
    4 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1963 Oct 27  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1963 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1991 Oct 27  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006 Apr  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Knox[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Knox";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Knox ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Knox /*name*/,
  0x6554adc9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Indiana_Knox /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Marengo
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = {
  // -5:45:23 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1382 /*offsetCode (-20723/15)*/,
    7 /*offsetRemainder (-20723%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1951
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1951 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Marengo    C%sT    1961 Apr 30  2:00
  {
    &kZonePolicyMarengo /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    4 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1969
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1974 Jan  6  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    1:00    CDT    1974 Oct 27  2:00
  {
    nullptr /*zonePolicy*/,
    "CDT" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    60 /*deltaMinutes*/,
    1974 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1976
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Marengo[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Marengo";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Marengo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Marengo /*name*/,
  0x2feeee72 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Indiana_Marengo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Petersburg
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = {
  // -5:49:07 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1397 /*offsetCode (-20947/15)*/,
    8 /*offsetRemainder (-20947%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1955
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1955 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Pike    C%sT    1965 Apr 25  2:00
  {
    &kZonePolicyPike /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1965 /*untilYear*/,
    4 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1966 Oct 30  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1977 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006 Apr  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    2007 Nov  4  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    11 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Petersburg[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Petersburg";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Petersburg ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Petersburg /*name*/,
  0x94ac7acc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Indiana_Petersburg /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Tell_City
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = {
  // -5:47:03 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1389 /*offsetCode (-20823/15)*/,
    12 /*offsetRemainder (-20823%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Perry    C%sT    1964 Apr 26  2:00
  {
    &kZonePolicyPerry /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    4 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1967 Oct 29  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1969 Apr 27  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1971
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006 Apr  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Tell_City[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Tell_City";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Tell_City ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Tell_City /*name*/,
  0x09263612 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Indiana_Tell_City /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Vevay
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = {
  // -5:40:16 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1362 /*offsetCode (-20416/15)*/,
    14 /*offsetRemainder (-20416%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1954 Apr 25  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1954 /*untilYear*/,
    4 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1969
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1973
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Vevay[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vevay";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vevay ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Vevay /*name*/,
  0x10aca054 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Indiana_Vevay /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Vincennes
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = {
  // -5:50:07 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1401 /*offsetCode (-21007/15)*/,
    8 /*offsetRemainder (-21007%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Vincennes    C%sT    1964 Apr 26  2:00
  {
    &kZonePolicyVincennes /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    4 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1969
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1971
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006 Apr  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    2007 Nov  4  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    11 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Vincennes[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Vincennes";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Vincennes ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Vincennes /*name*/,
  0x28a0b212 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Indiana_Vincennes /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Indiana/Winamac
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = {
  // -5:46:25 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1386 /*offsetCode (-20785/15)*/,
    5 /*offsetRemainder (-20785%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Pulaski    C%sT    1961 Apr 30  2:00
  {
    &kZonePolicyPulaski /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    4 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1969
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1971
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2006 Apr  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    2007 Mar 11  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Indiana_Winamac[] ACE_TIME_PROGMEM = "\x02" "\x0d" "Winamac";

const complete::Info::ZoneInfo kZoneAmerica_Indiana_Winamac ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indiana_Winamac /*name*/,
  0x4413fa69 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Indiana_Winamac /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Inuvik
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Inuvik[] ACE_TIME_PROGMEM = {
  // 0 - -00 1953
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1953 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    NT_YK    P%sT    1979 Apr lastSun  2:00
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    4 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    NT_YK    M%sT    1980
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Canada    M%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Inuvik[] ACE_TIME_PROGMEM = "\x02" "Inuvik";

const complete::Info::ZoneInfo kZoneAmerica_Inuvik ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Inuvik /*name*/,
  0xa42189fc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Inuvik /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Iqaluit
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Iqaluit[] ACE_TIME_PROGMEM = {
  // 0 - -00 1942 Aug
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    NT_YK    E%sT    1999 Oct 31  2:00
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT    2000 Oct 29  2:00
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Canada    E%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Iqaluit[] ACE_TIME_PROGMEM = "\x02" "Iqaluit";

const complete::Info::ZoneInfo kZoneAmerica_Iqaluit ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Iqaluit /*name*/,
  0x2de310bf /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Iqaluit /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Jamaica
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Jamaica[] ACE_TIME_PROGMEM = {
  // -5:07:10 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1229 /*offsetCode (-18430/15)*/,
    5 /*offsetRemainder (-18430%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:07:10 -    KMT    1912 Feb
  {
    nullptr /*zonePolicy*/,
    "KMT" /*format*/,
    -1229 /*offsetCode (-18430/15)*/,
    5 /*offsetRemainder (-18430%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1974
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1984
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Jamaica[] ACE_TIME_PROGMEM = "\x02" "Jamaica";

const complete::Info::ZoneInfo kZoneAmerica_Jamaica ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Jamaica /*name*/,
  0x565dad6c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Jamaica /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Juneau
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Juneau[] ACE_TIME_PROGMEM = {
  // 15:02:19 - LMT 1867 Oct 19 15:33:32
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3609 /*offsetCode (54139/15)*/,
    4 /*offsetRemainder (54139%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3734 /*untilTimeCode (56012/15)*/,
    2 /*untilTimeModifier (kAtcSuffixW + seconds=2)*/,
  },
  //              -8:57:41 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2151 /*offsetCode (-32261/15)*/,
    4 /*offsetRemainder (-32261%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1942
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1969
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1980 Apr 27  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1980 Oct 26  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Juneau[] ACE_TIME_PROGMEM = "\x02" "Juneau";

const complete::Info::ZoneInfo kZoneAmerica_Juneau ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Juneau /*name*/,
  0xa6f13e2e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Juneau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Kentucky/Louisville
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = {
  // -5:43:02 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1373 /*offsetCode (-20582/15)*/,
    13 /*offsetRemainder (-20582%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1921
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Louisville C%sT    1942
  {
    &kZonePolicyLouisville /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Louisville C%sT    1961 Jul 23  2:00
  {
    &kZonePolicyLouisville /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    7 /*untilMonth*/,
    23 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1968
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1974 Jan  6  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    1:00    CDT    1974 Oct 27  2:00
  {
    nullptr /*zonePolicy*/,
    "CDT" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    60 /*deltaMinutes*/,
    1974 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Kentucky_Louisville[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Louisville";

const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Louisville ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Kentucky_Louisville /*name*/,
  0x1a21024b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Kentucky/Monticello
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = {
  // -5:39:24 - LMT 1883 Nov 18 18:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1358 /*offsetCode (-20364/15)*/,
    6 /*offsetRemainder (-20364%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4320 /*untilTimeCode (64800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1968
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    2000 Oct 29  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Kentucky_Monticello[] ACE_TIME_PROGMEM = "\x02" "Kentucky/Monticello";

const complete::Info::ZoneInfo kZoneAmerica_Kentucky_Monticello ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Kentucky_Monticello /*name*/,
  0xde71c439 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Kentucky_Monticello /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/La_Paz
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_La_Paz[] ACE_TIME_PROGMEM = {
  // -4:32:36 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1091 /*offsetCode (-16356/15)*/,
    9 /*offsetRemainder (-16356%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:32:36 -    CMT    1931 Oct 15
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1091 /*offsetCode (-16356/15)*/,
    9 /*offsetRemainder (-16356%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:32:36 1:00    BST    1932 Mar 21
  {
    nullptr /*zonePolicy*/,
    "BST" /*format*/,
    -1091 /*offsetCode (-16356/15)*/,
    9 /*offsetRemainder (-16356%15)*/,
    60 /*deltaMinutes*/,
    1932 /*untilYear*/,
    3 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_La_Paz[] ACE_TIME_PROGMEM = "\x02" "La_Paz";

const complete::Info::ZoneInfo kZoneAmerica_La_Paz ACE_TIME_PROGMEM = {
  kZoneNameAmerica_La_Paz /*name*/,
  0xaa29125d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_La_Paz /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Lima
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Lima[] ACE_TIME_PROGMEM = {
  // -5:08:12 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1233 /*offsetCode (-18492/15)*/,
    3 /*offsetRemainder (-18492%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:08:36 -    LMT    1908 Jul 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1235 /*offsetCode (-18516/15)*/,
    9 /*offsetRemainder (-18516%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Peru    %z
  {
    &kZonePolicyPeru /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Lima[] ACE_TIME_PROGMEM = "\x02" "Lima";

const complete::Info::ZoneInfo kZoneAmerica_Lima ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Lima /*name*/,
  0x980468c9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Lima /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Los_Angeles
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Los_Angeles[] ACE_TIME_PROGMEM = {
  // -7:52:58 - LMT 1883 Nov 18 20:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1892 /*offsetCode (-28378/15)*/,
    2 /*offsetRemainder (-28378%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4800 /*untilTimeCode (72000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -8:00    US    P%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    CA    P%sT    1967
  {
    &kZonePolicyCA /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    US    P%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Los_Angeles[] ACE_TIME_PROGMEM = "\x02" "Los_Angeles";

const complete::Info::ZoneInfo kZoneAmerica_Los_Angeles ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Los_Angeles /*name*/,
  0xb7f7e8f2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Los_Angeles /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Maceio
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Maceio[] ACE_TIME_PROGMEM = {
  // -2:22:52 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -572 /*offsetCode (-8572/15)*/,
    8 /*offsetRemainder (-8572%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1990 Sep 17
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1995 Oct 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1995 /*untilYear*/,
    10 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1996 Sep  4
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    9 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1999 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2000 Oct 22
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2001 Sep 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2002 Oct  1
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Maceio[] ACE_TIME_PROGMEM = "\x02" "Maceio";

const complete::Info::ZoneInfo kZoneAmerica_Maceio ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Maceio /*name*/,
  0xac80c6d4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Maceio /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Managua
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Managua[] ACE_TIME_PROGMEM = {
  // -5:45:08 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1381 /*offsetCode (-20708/15)*/,
    7 /*offsetRemainder (-20708%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:45:12 -    MMT    1934 Jun 23
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    -1381 /*offsetCode (-20712/15)*/,
    3 /*offsetRemainder (-20712%15)*/,
    0 /*deltaMinutes*/,
    1934 /*untilYear*/,
    6 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1973 May
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1975 Feb 16
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    2 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Nic    C%sT    1992 Jan  1  4:00
  {
    &kZonePolicyNic /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1992 Sep 24
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1993
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1997
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Nic    C%sT
  {
    &kZonePolicyNic /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Managua[] ACE_TIME_PROGMEM = "\x02" "Managua";

const complete::Info::ZoneInfo kZoneAmerica_Managua ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Managua /*name*/,
  0x3d5e7600 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Managua /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Manaus
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Manaus[] ACE_TIME_PROGMEM = {
  // -4:00:04 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -961 /*offsetCode (-14404/15)*/,
    11 /*offsetRemainder (-14404%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1993 Sep 28
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    9 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    1994 Sep 22
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    9 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Manaus[] ACE_TIME_PROGMEM = "\x02" "Manaus";

const complete::Info::ZoneInfo kZoneAmerica_Manaus ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Manaus /*name*/,
  0xac86bf8b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Manaus /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Martinique
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Martinique[] ACE_TIME_PROGMEM = {
  // -4:04:20 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -978 /*offsetCode (-14660/15)*/,
    10 /*offsetRemainder (-14660%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:04:20 -    FFMT    1911 May  1
  {
    nullptr /*zonePolicy*/,
    "FFMT" /*format*/,
    -978 /*offsetCode (-14660/15)*/,
    10 /*offsetRemainder (-14660%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    1980 Apr  6
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    ADT    1980 Sep 28
  {
    nullptr /*zonePolicy*/,
    "ADT" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1980 /*untilYear*/,
    9 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Martinique[] ACE_TIME_PROGMEM = "\x02" "Martinique";

const complete::Info::ZoneInfo kZoneAmerica_Martinique ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Martinique /*name*/,
  0x551e84c5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Martinique /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Matamoros
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Matamoros[] ACE_TIME_PROGMEM = {
  // -6:30:00 - LMT 1922 Jan 1 6:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1560 /*offsetCode (-23400/15)*/,
    0 /*offsetRemainder (-23400%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1440 /*untilTimeCode (21600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    -    CST    1988
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1989
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    2010
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Matamoros[] ACE_TIME_PROGMEM = "\x02" "Matamoros";

const complete::Info::ZoneInfo kZoneAmerica_Matamoros ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Matamoros /*name*/,
  0xdd1b0259 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Matamoros /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Mazatlan
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Mazatlan[] ACE_TIME_PROGMEM = {
  // -7:05:40 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1703 /*offsetCode (-25540/15)*/,
    5 /*offsetRemainder (-25540%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1942 Apr 24
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1970
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1970 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Mazatlan[] ACE_TIME_PROGMEM = "\x02" "Mazatlan";

const complete::Info::ZoneInfo kZoneAmerica_Mazatlan ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Mazatlan /*name*/,
  0x0532189e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Mazatlan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Menominee
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Menominee[] ACE_TIME_PROGMEM = {
  // -5:50:27 - LMT 1885 Sep 18 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1402 /*offsetCode (-21027/15)*/,
    3 /*offsetRemainder (-21027%15)*/,
    0 /*deltaMinutes*/,
    1885 /*untilYear*/,
    9 /*untilMonth*/,
    18 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00 Menominee    C%sT    1969 Apr 27  2:00
  {
    &kZonePolicyMenominee /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1973 Apr 29  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    4 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Menominee[] ACE_TIME_PROGMEM = "\x02" "Menominee";

const complete::Info::ZoneInfo kZoneAmerica_Menominee ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Menominee /*name*/,
  0xe0e9c583 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Menominee /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Merida
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Merida[] ACE_TIME_PROGMEM = {
  // -5:58:28 - LMT 1922 Jan 1 6:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1434 /*offsetCode (-21508/15)*/,
    2 /*offsetRemainder (-21508%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1440 /*untilTimeCode (21600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    -    CST    1981 Dec 26  2:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    12 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1982 Nov  2  2:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Merida[] ACE_TIME_PROGMEM = "\x02" "Merida";

const complete::Info::ZoneInfo kZoneAmerica_Merida ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Merida /*name*/,
  0xacd172d8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Merida /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Metlakatla
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Metlakatla[] ACE_TIME_PROGMEM = {
  // 15:13:42 - LMT 1867 Oct 19 15:44:55
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3654 /*offsetCode (54822/15)*/,
    12 /*offsetRemainder (54822%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3779 /*untilTimeCode (56695/15)*/,
    10 /*untilTimeModifier (kAtcSuffixW + seconds=10)*/,
  },
  //              -8:46:18 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2106 /*offsetCode (-31578/15)*/,
    12 /*offsetRemainder (-31578%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1942
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1969
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    2015 Nov  1  2:00
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT    2018 Nov  4  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    11 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    2019 Jan 20  2:00
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2019 /*untilYear*/,
    1 /*untilMonth*/,
    20 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Metlakatla[] ACE_TIME_PROGMEM = "\x02" "Metlakatla";

const complete::Info::ZoneInfo kZoneAmerica_Metlakatla ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Metlakatla /*name*/,
  0x84de2686 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Metlakatla /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Mexico_City
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Mexico_City[] ACE_TIME_PROGMEM = {
  // -6:36:36 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1587 /*offsetCode (-23796/15)*/,
    9 /*offsetRemainder (-23796%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    2001 Sep 30  2:00
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    2002 Feb 20
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    2 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Mexico_City[] ACE_TIME_PROGMEM = "\x02" "Mexico_City";

const complete::Info::ZoneInfo kZoneAmerica_Mexico_City ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Mexico_City /*name*/,
  0xd0d93f43 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Mexico_City /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Miquelon
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Miquelon[] ACE_TIME_PROGMEM = {
  // -3:44:40 - LMT 1911 Jun 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -899 /*offsetCode (-13480/15)*/,
    5 /*offsetRemainder (-13480%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    6 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    1980 May
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1987
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1987 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Canada    %z
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Miquelon[] ACE_TIME_PROGMEM = "\x02" "Miquelon";

const complete::Info::ZoneInfo kZoneAmerica_Miquelon ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Miquelon /*name*/,
  0x59674330 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Miquelon /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Moncton
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Moncton[] ACE_TIME_PROGMEM = {
  // -4:19:08 - LMT 1883 Dec 9
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1037 /*offsetCode (-15548/15)*/,
    7 /*offsetRemainder (-15548%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    12 /*untilMonth*/,
    9 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    1902 Jun 15
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1902 /*untilYear*/,
    6 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1933
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1933 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Moncton    A%sT    1942
  {
    &kZonePolicyMoncton /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1946
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Moncton    A%sT    1973
  {
    &kZonePolicyMoncton /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1993
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Moncton    A%sT    2007
  {
    &kZonePolicyMoncton /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Moncton[] ACE_TIME_PROGMEM = "\x02" "Moncton";

const complete::Info::ZoneInfo kZoneAmerica_Moncton ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Moncton /*name*/,
  0x5e07fe24 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Moncton /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Monterrey
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Monterrey[] ACE_TIME_PROGMEM = {
  // -6:41:16 - LMT 1922 Jan 1 6:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1606 /*offsetCode (-24076/15)*/,
    14 /*offsetRemainder (-24076%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1440 /*untilTimeCode (21600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1988
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT    1989
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Monterrey[] ACE_TIME_PROGMEM = "\x02" "Monterrey";

const complete::Info::ZoneInfo kZoneAmerica_Monterrey ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Monterrey /*name*/,
  0x269a1deb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Monterrey /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Montevideo
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Montevideo[] ACE_TIME_PROGMEM = {
  // -3:44:51 - LMT 1908 Jun 10
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -900 /*offsetCode (-13491/15)*/,
    9 /*offsetRemainder (-13491%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:44:51 -    MMT    1920 May  1
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    -900 /*offsetCode (-13491/15)*/,
    9 /*offsetRemainder (-13491%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1923 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1923 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    Uruguay    %z    1942 Dec 14
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    12 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1960
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1960 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1968
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1970
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1970 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1974
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1974 Mar 10
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    3 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z    1974 Dec 22
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    12 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Uruguay    %z
  {
    &kZonePolicyUruguay /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Montevideo[] ACE_TIME_PROGMEM = "\x02" "Montevideo";

const complete::Info::ZoneInfo kZoneAmerica_Montevideo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Montevideo /*name*/,
  0xfa214780 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Montevideo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/New_York
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_New_York[] ACE_TIME_PROGMEM = {
  // -4:56:02 - LMT 1883 Nov 18 17:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1185 /*offsetCode (-17762/15)*/,
    13 /*offsetRemainder (-17762%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4080 /*untilTimeCode (61200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1920
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    NYC    E%sT    1942
  {
    &kZonePolicyNYC /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    NYC    E%sT    1967
  {
    &kZonePolicyNYC /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_New_York[] ACE_TIME_PROGMEM = "\x02" "New_York";

const complete::Info::ZoneInfo kZoneAmerica_New_York ACE_TIME_PROGMEM = {
  kZoneNameAmerica_New_York /*name*/,
  0x1e2a7654 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_New_York /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Nome
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Nome[] ACE_TIME_PROGMEM = {
  // 12:58:22 - LMT 1867 Oct 19 13:29:35
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3113 /*offsetCode (46702/15)*/,
    7 /*offsetRemainder (46702%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3238 /*untilTimeCode (48575/15)*/,
    5 /*untilTimeModifier (kAtcSuffixW + seconds=5)*/,
  },
  //             -11:01:38 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2647 /*offsetCode (-39698/15)*/,
    7 /*offsetRemainder (-39698%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    NST    1942
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    US    N%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "N%T" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    NST    1967 Apr
  {
    nullptr /*zonePolicy*/,
    "NST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    BST    1969
  {
    nullptr /*zonePolicy*/,
    "BST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    US    B%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "B%T" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Nome[] ACE_TIME_PROGMEM = "\x02" "Nome";

const complete::Info::ZoneInfo kZoneAmerica_Nome ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Nome /*name*/,
  0x98059b15 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Nome /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Noronha
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Noronha[] ACE_TIME_PROGMEM = {
  // -2:09:40 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -519 /*offsetCode (-7780/15)*/,
    5 /*offsetRemainder (-7780%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    Brazil    %z    1990 Sep 17
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z    1999 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    Brazil    %z    2000 Oct 15
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z    2001 Sep 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    Brazil    %z    2002 Oct  1
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Noronha[] ACE_TIME_PROGMEM = "\x02" "Noronha";

const complete::Info::ZoneInfo kZoneAmerica_Noronha ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Noronha /*name*/,
  0xab5116fb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Noronha /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/North_Dakota/Beulah
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = {
  // -6:47:07 - LMT 1883 Nov 18 19:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1629 /*offsetCode (-24427/15)*/,
    8 /*offsetRemainder (-24427%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4560 /*untilTimeCode (68400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    US    M%sT    2010 Nov  7  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    11 /*untilMonth*/,
    7 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_North_Dakota_Beulah[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Beulah";

const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Beulah ACE_TIME_PROGMEM = {
  kZoneNameAmerica_North_Dakota_Beulah /*name*/,
  0x9b52b384 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_North_Dakota_Beulah /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/North_Dakota/Center
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = {
  // -6:45:12 - LMT 1883 Nov 18 19:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1621 /*offsetCode (-24312/15)*/,
    3 /*offsetRemainder (-24312%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4560 /*untilTimeCode (68400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1992 Oct 25  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    10 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_North_Dakota_Center[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/Center";

const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_Center ACE_TIME_PROGMEM = {
  kZoneNameAmerica_North_Dakota_Center /*name*/,
  0x9da42814 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_North_Dakota_Center /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/North_Dakota/New_Salem
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = {
  // -6:45:39 - LMT 1883 Nov 18 19:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1623 /*offsetCode (-24339/15)*/,
    6 /*offsetRemainder (-24339%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4560 /*untilTimeCode (68400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    US    M%sT    2003 Oct 26  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2003 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_North_Dakota_New_Salem[] ACE_TIME_PROGMEM = "\x02" "North_Dakota/New_Salem";

const complete::Info::ZoneInfo kZoneAmerica_North_Dakota_New_Salem ACE_TIME_PROGMEM = {
  kZoneNameAmerica_North_Dakota_New_Salem /*name*/,
  0x04f9958e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_North_Dakota_New_Salem /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Nuuk
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Nuuk[] ACE_TIME_PROGMEM = {
  // -3:26:56 - LMT 1916 Jul 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -828 /*offsetCode (-12416/15)*/,
    4 /*offsetRemainder (-12416%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1980 Apr  6  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    EU    %z    2023 Mar 26  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2023 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -2:00    -    %z    2023 Oct 29  1:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    2023 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -2:00    EU    %z
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Nuuk[] ACE_TIME_PROGMEM = "\x02" "Nuuk";

const complete::Info::ZoneInfo kZoneAmerica_Nuuk ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Nuuk /*name*/,
  0x9805b5a9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Nuuk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Ojinaga
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Ojinaga[] ACE_TIME_PROGMEM = {
  // -6:57:40 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1671 /*offsetCode (-25060/15)*/,
    5 /*offsetRemainder (-25060%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    1932 Apr  1
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1996
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Mexico    C%sT    1998
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    1998 Apr Sun>=1  3:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    4 /*untilMonth*/,
    5 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Mexico    M%sT    2010
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    2022 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST    2022 Nov 30  0:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    US    C%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Ojinaga[] ACE_TIME_PROGMEM = "\x02" "Ojinaga";

const complete::Info::ZoneInfo kZoneAmerica_Ojinaga ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Ojinaga /*name*/,
  0xebfde83f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Ojinaga /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Panama
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Panama[] ACE_TIME_PROGMEM = {
  // -5:18:08 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1273 /*offsetCode (-19088/15)*/,
    7 /*offsetRemainder (-19088%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:19:36 -    CMT    1908 Apr 22
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    -1279 /*offsetCode (-19176/15)*/,
    9 /*offsetRemainder (-19176%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    4 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Panama[] ACE_TIME_PROGMEM = "\x02" "Panama";

const complete::Info::ZoneInfo kZoneAmerica_Panama ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Panama /*name*/,
  0xb3863854 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Panama /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Paramaribo
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Paramaribo[] ACE_TIME_PROGMEM = {
  // -3:40:40 - LMT 1911
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -883 /*offsetCode (-13240/15)*/,
    5 /*offsetRemainder (-13240%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:40:52 -    PMT    1935
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    -884 /*offsetCode (-13252/15)*/,
    8 /*offsetRemainder (-13252%15)*/,
    0 /*deltaMinutes*/,
    1935 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:40:36 -    PMT    1945 Oct
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    -883 /*offsetCode (-13236/15)*/,
    9 /*offsetRemainder (-13236%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    -    %z    1984 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Paramaribo[] ACE_TIME_PROGMEM = "\x02" "Paramaribo";

const complete::Info::ZoneInfo kZoneAmerica_Paramaribo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Paramaribo /*name*/,
  0xb319e4c4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Paramaribo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Phoenix
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Phoenix[] ACE_TIME_PROGMEM = {
  // -7:28:18 - LMT 1883 Nov 18 19:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1794 /*offsetCode (-26898/15)*/,
    12 /*offsetRemainder (-26898%15)*/,
    0 /*deltaMinutes*/,
    1883 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    4560 /*untilTimeCode (68400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1944 Jan  1  0:01
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1944 Apr  1  0:01
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1944 Oct  1  0:01
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1967
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    US    M%sT    1968 Mar 21
  {
    &kZonePolicyUS /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    3 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Phoenix[] ACE_TIME_PROGMEM = "\x02" "Phoenix";

const complete::Info::ZoneInfo kZoneAmerica_Phoenix ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Phoenix /*name*/,
  0x34b5af01 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Phoenix /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Port-au-Prince
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = {
  // -4:49:20 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1158 /*offsetCode (-17360/15)*/,
    10 /*offsetRemainder (-17360%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:49    -    PPMT    1917 Jan 24 12:00
  {
    nullptr /*zonePolicy*/,
    "PPMT" /*format*/,
    -1156 /*offsetCode (-17340/15)*/,
    0 /*offsetRemainder (-17340%15)*/,
    0 /*deltaMinutes*/,
    1917 /*untilYear*/,
    1 /*untilMonth*/,
    24 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Haiti    E%sT
  {
    &kZonePolicyHaiti /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Port_au_Prince[] ACE_TIME_PROGMEM = "\x02" "Port-au-Prince";

const complete::Info::ZoneInfo kZoneAmerica_Port_au_Prince ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Port_au_Prince /*name*/,
  0x8e4a7bdc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Port_au_Prince /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Porto_Velho
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Porto_Velho[] ACE_TIME_PROGMEM = {
  // -4:15:36 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1023 /*offsetCode (-15336/15)*/,
    9 /*offsetRemainder (-15336%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Porto_Velho[] ACE_TIME_PROGMEM = "\x02" "Porto_Velho";

const complete::Info::ZoneInfo kZoneAmerica_Porto_Velho ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Porto_Velho /*name*/,
  0x6b1aac77 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Porto_Velho /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Puerto_Rico
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = {
  // -4:24:25 - LMT 1899 Mar 28 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1058 /*offsetCode (-15865/15)*/,
    5 /*offsetRemainder (-15865%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    1942 May  3
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    US    A%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Puerto_Rico[] ACE_TIME_PROGMEM = "\x02" "Puerto_Rico";

const complete::Info::ZoneInfo kZoneAmerica_Puerto_Rico ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Puerto_Rico /*name*/,
  0x6752ca31 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Punta_Arenas
// Eras: 14
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = {
  // -4:43:40 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1135 /*offsetCode (-17020/15)*/,
    5 /*offsetRemainder (-17020%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1910 Jan 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1910 /*untilYear*/,
    1 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1916 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1918 Sep 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    9 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1919 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1927 Sep  1
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Chile    %z    1932 Sep  1
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1942 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1942 Aug  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1946 Aug 28 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    8 /*untilMonth*/,
    28 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    1:00    %z    1947 Mar 31 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    60 /*deltaMinutes*/,
    1947 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1947 May 21 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    5 /*untilMonth*/,
    21 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Chile    %z    2016 Dec  4
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    12 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Punta_Arenas[] ACE_TIME_PROGMEM = "\x02" "Punta_Arenas";

const complete::Info::ZoneInfo kZoneAmerica_Punta_Arenas ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Punta_Arenas /*name*/,
  0xc2c3bce7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  14 /*numEras*/,
  kZoneEraAmerica_Punta_Arenas /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Rankin_Inlet
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = {
  // 0 - -00 1957
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    NT_YK    C%sT    2000 Oct 29  2:00
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2001 Apr  1  3:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Rankin_Inlet[] ACE_TIME_PROGMEM = "\x02" "Rankin_Inlet";

const complete::Info::ZoneInfo kZoneAmerica_Rankin_Inlet ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Rankin_Inlet /*name*/,
  0xc8de4984 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Rankin_Inlet /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Recife
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Recife[] ACE_TIME_PROGMEM = {
  // -2:19:36 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -559 /*offsetCode (-8376/15)*/,
    9 /*offsetRemainder (-8376%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1990 Sep 17
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    1999 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2000 Oct 15
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z    2001 Sep 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    2002 Oct  1
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Recife[] ACE_TIME_PROGMEM = "\x02" "Recife";

const complete::Info::ZoneInfo kZoneAmerica_Recife ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Recife /*name*/,
  0xb8730494 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Recife /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Regina
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Regina[] ACE_TIME_PROGMEM = {
  // -6:58:36 - LMT 1905 Sep
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1675 /*offsetCode (-25116/15)*/,
    9 /*offsetRemainder (-25116%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Regina    M%sT    1960 Apr lastSun  2:00
  {
    &kZonePolicyRegina /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1960 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Regina[] ACE_TIME_PROGMEM = "\x02" "Regina";

const complete::Info::ZoneInfo kZoneAmerica_Regina ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Regina /*name*/,
  0xb875371c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Regina /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Resolute
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Resolute[] ACE_TIME_PROGMEM = {
  // 0 - -00 1947 Aug 31
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    8 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    NT_YK    C%sT    2000 Oct 29  2:00
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2001 Apr  1  3:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT    2006 Oct 29  2:00
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    EST    2007 Mar 11  3:00
  {
    nullptr /*zonePolicy*/,
    "EST" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Resolute[] ACE_TIME_PROGMEM = "\x02" "Resolute";

const complete::Info::ZoneInfo kZoneAmerica_Resolute ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Resolute /*name*/,
  0xc7093459 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Resolute /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Rio_Branco
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Rio_Branco[] ACE_TIME_PROGMEM = {
  // -4:31:12 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1085 /*offsetCode (-16272/15)*/,
    3 /*offsetRemainder (-16272%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    2008 Jun 24  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    6 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2013 Nov 10
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2013 /*untilYear*/,
    11 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Rio_Branco[] ACE_TIME_PROGMEM = "\x02" "Rio_Branco";

const complete::Info::ZoneInfo kZoneAmerica_Rio_Branco ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Rio_Branco /*name*/,
  0x9d352764 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Rio_Branco /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Santarem
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Santarem[] ACE_TIME_PROGMEM = {
  // -3:38:48 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -876 /*offsetCode (-13128/15)*/,
    12 /*offsetRemainder (-13128%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Brazil    %z    1988 Sep 12
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    2008 Jun 24  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    6 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Santarem[] ACE_TIME_PROGMEM = "\x02" "Santarem";

const complete::Info::ZoneInfo kZoneAmerica_Santarem ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Santarem /*name*/,
  0x740caec1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Santarem /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Santiago
// Eras: 14
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Santiago[] ACE_TIME_PROGMEM = {
  // -4:42:45 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1910 Jan 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1910 /*untilYear*/,
    1 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1916 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1918 Sep 10
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    9 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1919 Jul  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:42:45 -    SMT    1927 Sep  1
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -1131 /*offsetCode (-16965/15)*/,
    0 /*offsetRemainder (-16965%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Chile    %z    1932 Sep  1
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1942 Jun  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1942 Aug  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    %z    1946 Jul 14 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    7 /*untilMonth*/,
    14 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    1:00    %z    1946 Aug 28 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    60 /*deltaMinutes*/,
    1946 /*untilYear*/,
    8 /*untilMonth*/,
    28 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    1:00    %z    1947 Mar 31 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    60 /*deltaMinutes*/,
    1947 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1947 May 21 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    5 /*untilMonth*/,
    21 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Chile    %z
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Santiago[] ACE_TIME_PROGMEM = "\x02" "Santiago";

const complete::Info::ZoneInfo kZoneAmerica_Santiago ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Santiago /*name*/,
  0x7410c9bc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  14 /*numEras*/,
  kZoneEraAmerica_Santiago /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Santo_Domingo
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = {
  // -4:39:36 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1119 /*offsetCode (-16776/15)*/,
    9 /*offsetRemainder (-16776%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:40    -    SDMT    1933 Apr  1 12:00
  {
    nullptr /*zonePolicy*/,
    "SDMT" /*format*/,
    -1120 /*offsetCode (-16800/15)*/,
    0 /*offsetRemainder (-16800%15)*/,
    0 /*deltaMinutes*/,
    1933 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    DR    %s    1974 Oct 27
  {
    &kZonePolicyDR /*zonePolicy*/,
    "%" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST    2000 Oct 29  2:00
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    US    E%sT    2000 Dec  3  1:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    12 /*untilMonth*/,
    3 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    -    AST
  {
    nullptr /*zonePolicy*/,
    "AST" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Santo_Domingo[] ACE_TIME_PROGMEM = "\x02" "Santo_Domingo";

const complete::Info::ZoneInfo kZoneAmerica_Santo_Domingo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Santo_Domingo /*name*/,
  0x75a0d177 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Santo_Domingo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Sao_Paulo
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = {
  // -3:06:28 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -746 /*offsetCode (-11188/15)*/,
    2 /*offsetRemainder (-11188%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z    1963 Oct 23  0:00
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1963 /*untilYear*/,
    10 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    1:00    %z    1964
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    60 /*deltaMinutes*/,
    1964 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Brazil    %z
  {
    &kZonePolicyBrazil /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Sao_Paulo[] ACE_TIME_PROGMEM = "\x02" "Sao_Paulo";

const complete::Info::ZoneInfo kZoneAmerica_Sao_Paulo ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Sao_Paulo /*name*/,
  0x1063bfc9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Sao_Paulo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Scoresbysund
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Scoresbysund[] ACE_TIME_PROGMEM = {
  // -1:27:52 - LMT 1916 Jul 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -352 /*offsetCode (-5272/15)*/,
    8 /*offsetRemainder (-5272%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z    1980 Apr  6  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    C-Eur    %z    1981 Mar 29
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:00    EU    %z    2024 Mar 31
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    2024 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    EU    %z
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Scoresbysund[] ACE_TIME_PROGMEM = "\x02" "Scoresbysund";

const complete::Info::ZoneInfo kZoneAmerica_Scoresbysund ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Scoresbysund /*name*/,
  0x123f8d2a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Scoresbysund /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Sitka
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Sitka[] ACE_TIME_PROGMEM = {
  // 14:58:47 - LMT 1867 Oct 19 15:30
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3595 /*offsetCode (53927/15)*/,
    2 /*offsetRemainder (53927%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3720 /*untilTimeCode (55800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:01:13 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2165 /*offsetCode (-32473/15)*/,
    2 /*offsetRemainder (-32473%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1942
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    -    PST    1969
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -8:00    US    P%sT    1983 Oct 30  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Sitka[] ACE_TIME_PROGMEM = "\x02" "Sitka";

const complete::Info::ZoneInfo kZoneAmerica_Sitka ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Sitka /*name*/,
  0x99104ce2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Sitka /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/St_Johns
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_St_Johns[] ACE_TIME_PROGMEM = {
  // -3:30:52 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 StJohns N%sT    1918
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 Canada    N%sT    1919
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "N%T" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30:52 StJohns N%sT    1935 Mar 30
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -844 /*offsetCode (-12652/15)*/,
    8 /*offsetRemainder (-12652%15)*/,
    0 /*deltaMinutes*/,
    1935 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    StJohns    N%sT    1942 May 11
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    Canada    N%sT    1946
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    StJohns    N%sT    2011 Nov
  {
    &kZonePolicyStJohns /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:30    Canada    N%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "N%T" /*format*/,
    -840 /*offsetCode (-12600/15)*/,
    0 /*offsetRemainder (-12600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_St_Johns[] ACE_TIME_PROGMEM = "\x02" "St_Johns";

const complete::Info::ZoneInfo kZoneAmerica_St_Johns ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Johns /*name*/,
  0x04b14e6e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_St_Johns /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Swift_Current
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Swift_Current[] ACE_TIME_PROGMEM = {
  // -7:11:20 - LMT 1905 Sep
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1726 /*offsetCode (-25880/15)*/,
    10 /*offsetRemainder (-25880%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Canada    M%sT    1946 Apr lastSun  2:00
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    4 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Regina    M%sT    1950
  {
    &kZonePolicyRegina /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1950 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Swift    M%sT    1972 Apr lastSun  2:00
  {
    &kZonePolicySwift /*zonePolicy*/,
    "M%T" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    4 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    -    CST
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Swift_Current[] ACE_TIME_PROGMEM = "\x02" "Swift_Current";

const complete::Info::ZoneInfo kZoneAmerica_Swift_Current ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Swift_Current /*name*/,
  0xdef98e55 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Swift_Current /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Tegucigalpa
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = {
  // -5:48:52 - LMT 1921 Apr
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1396 /*offsetCode (-20932/15)*/,
    8 /*offsetRemainder (-20932%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Hond    C%sT
  {
    &kZonePolicyHond /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Tegucigalpa[] ACE_TIME_PROGMEM = "\x02" "Tegucigalpa";

const complete::Info::ZoneInfo kZoneAmerica_Tegucigalpa ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Tegucigalpa /*name*/,
  0xbfd6fd4c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_Tegucigalpa /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Thule
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Thule[] ACE_TIME_PROGMEM = {
  // -4:35:08 - LMT 1916 Jul 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1101 /*offsetCode (-16508/15)*/,
    7 /*offsetRemainder (-16508%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Thule    A%sT
  {
    &kZonePolicyThule /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Thule[] ACE_TIME_PROGMEM = "\x02" "Thule";

const complete::Info::ZoneInfo kZoneAmerica_Thule ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Thule /*name*/,
  0x9921dd68 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAmerica_Thule /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Tijuana
// Eras: 25
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Tijuana[] ACE_TIME_PROGMEM = {
  // -7:48:04 - LMT 1922 Jan 1 7:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1873 /*offsetCode (-28084/15)*/,
    11 /*offsetRemainder (-28084%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    1680 /*untilTimeCode (25200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -7:00    -    MST    1924
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1927 Jun 10
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1927 /*untilYear*/,
    6 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST    1930 Nov 15
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1931 Apr  1
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PDT    1931 Sep 30
  {
    nullptr /*zonePolicy*/,
    "PDT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1931 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1942 Apr 24
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PWT    1945 Aug 14 23:00u
  {
    nullptr /*zonePolicy*/,
    "PWT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    8 /*untilMonth*/,
    14 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -8:00    1:00    PPT    1945 Nov 15
  {
    nullptr /*zonePolicy*/,
    "PPT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1948 Apr  5
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    4 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PDT    1949 Jan 14
  {
    nullptr /*zonePolicy*/,
    "PDT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1949 /*untilYear*/,
    1 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1950 May  1
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1950 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PDT    1950 Sep 24
  {
    nullptr /*zonePolicy*/,
    "PDT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1950 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1951 Apr 29  2:00
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1951 /*untilYear*/,
    4 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PDT    1951 Sep 30  2:00
  {
    nullptr /*zonePolicy*/,
    "PDT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1951 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1952 Apr 27  2:00
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1952 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    1:00    PDT    1952 Sep 28  2:00
  {
    nullptr /*zonePolicy*/,
    "PDT" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    60 /*deltaMinutes*/,
    1952 /*untilYear*/,
    9 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1954
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1954 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    CA    P%sT    1961
  {
    &kZonePolicyCA /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1976
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    US    P%sT    1996
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Mexico    P%sT    2001
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    US    P%sT    2002 Feb 20
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    2 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Mexico    P%sT    2010
  {
    &kZonePolicyMexico /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    US    P%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Tijuana[] ACE_TIME_PROGMEM = "\x02" "Tijuana";

const complete::Info::ZoneInfo kZoneAmerica_Tijuana ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Tijuana /*name*/,
  0x6aa1df72 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  25 /*numEras*/,
  kZoneEraAmerica_Tijuana /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Toronto
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Toronto[] ACE_TIME_PROGMEM = {
  // -5:17:32 - LMT 1895
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1271 /*offsetCode (-19052/15)*/,
    13 /*offsetRemainder (-19052%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Canada    E%sT    1919
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Toronto    E%sT    1942 Feb  9  2:00s
  {
    &kZonePolicyToronto /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    9 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             -5:00    Canada    E%sT    1946
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Toronto    E%sT    1974
  {
    &kZonePolicyToronto /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    Canada    E%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "E%T" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Toronto[] ACE_TIME_PROGMEM = "\x02" "Toronto";

const complete::Info::ZoneInfo kZoneAmerica_Toronto ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Toronto /*name*/,
  0x792e851b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Vancouver
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Vancouver[] ACE_TIME_PROGMEM = {
  // -8:12:28 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1970 /*offsetCode (-29548/15)*/,
    2 /*offsetRemainder (-29548%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Vanc    P%sT    1987
  {
    &kZonePolicyVanc /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1987 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Canada    P%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Vancouver[] ACE_TIME_PROGMEM = "\x02" "Vancouver";

const complete::Info::ZoneInfo kZoneAmerica_Vancouver ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Vancouver /*name*/,
  0x2c6f6b1f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Vancouver /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Whitehorse
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Whitehorse[] ACE_TIME_PROGMEM = {
  // -9:00:12 - LMT 1900 Aug 20
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2161 /*offsetCode (-32412/15)*/,
    3 /*offsetRemainder (-32412%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -9:00    NT_YK    Y%sT    1965
  {
    &kZonePolicyNT_YK /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1965 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -9:00    Yukon    Y%sT    1966 Feb 27  0:00
  {
    &kZonePolicyYukon /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    2 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    PST    1980
  {
    nullptr /*zonePolicy*/,
    "PST" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    Canada    P%sT    2020 Nov  1
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "P%T" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    2020 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    -    MST
  {
    nullptr /*zonePolicy*/,
    "MST" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Whitehorse[] ACE_TIME_PROGMEM = "\x02" "Whitehorse";

const complete::Info::ZoneInfo kZoneAmerica_Whitehorse ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Whitehorse /*name*/,
  0x54e0e3e8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Whitehorse /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Winnipeg
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Winnipeg[] ACE_TIME_PROGMEM = {
  // -6:28:36 - LMT 1887 Jul 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1555 /*offsetCode (-23316/15)*/,
    9 /*offsetRemainder (-23316%15)*/,
    0 /*deltaMinutes*/,
    1887 /*untilYear*/,
    7 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Winn    C%sT    2006
  {
    &kZonePolicyWinn /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Canada    C%sT
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "C%T" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Winnipeg[] ACE_TIME_PROGMEM = "\x02" "Winnipeg";

const complete::Info::ZoneInfo kZoneAmerica_Winnipeg ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Winnipeg /*name*/,
  0x8c7dafc7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Winnipeg /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: America/Yakutat
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAmerica_Yakutat[] ACE_TIME_PROGMEM = {
  // 14:41:05 - LMT 1867 Oct 19 15:12:18
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3524 /*offsetCode (52865/15)*/,
    5 /*offsetRemainder (52865%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    10 /*untilMonth*/,
    19 /*untilDay*/,
    3649 /*untilTimeCode (54738/15)*/,
    3 /*untilTimeModifier (kAtcSuffixW + seconds=3)*/,
  },
  //              -9:18:55 -    LMT    1900 Aug 20 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2236 /*offsetCode (-33535/15)*/,
    5 /*offsetRemainder (-33535%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    -    YST    1942
  {
    nullptr /*zonePolicy*/,
    "YST" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1946
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    -    YST    1969
  {
    nullptr /*zonePolicy*/,
    "YST" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    Y%sT    1983 Nov 30
  {
    &kZonePolicyUS /*zonePolicy*/,
    "Y%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    US    AK%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "AK%T" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAmerica_Yakutat[] ACE_TIME_PROGMEM = "\x02" "Yakutat";

const complete::Info::ZoneInfo kZoneAmerica_Yakutat ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Yakutat /*name*/,
  0xd8ee31e9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Yakutat /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Casey
// Eras: 18
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Casey[] ACE_TIME_PROGMEM = {
  // 0 - -00 1969
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2009 Oct 18  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2009 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2010 Mar  5  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    5 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2011 Oct 28  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2012 Feb 21 17:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    2 /*untilMonth*/,
    21 /*untilDay*/,
    4080 /*untilTimeCode (61200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              8:00    -    %z    2016 Oct 22
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    10 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2018 Mar 11  4:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2018 Oct  7  4:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    10 /*untilMonth*/,
    7 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2019 Mar 17  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2019 /*untilYear*/,
    3 /*untilMonth*/,
    17 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2019 Oct  4  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2019 /*untilYear*/,
    10 /*untilMonth*/,
    4 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2020 Mar  8  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2020 /*untilYear*/,
    3 /*untilMonth*/,
    8 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2020 Oct  4  0:01
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2020 /*untilYear*/,
    10 /*untilMonth*/,
    4 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2021 Mar 14  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2021 /*untilYear*/,
    3 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2021 Oct  3  0:01
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2021 /*untilYear*/,
    10 /*untilMonth*/,
    3 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2022 Mar 13  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    3 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    2022 Oct  2  0:01
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    2 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    2023 Mar  9  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2023 /*untilYear*/,
    3 /*untilMonth*/,
    9 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Casey[] ACE_TIME_PROGMEM = "\x03" "Casey";

const complete::Info::ZoneInfo kZoneAntarctica_Casey ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Casey /*name*/,
  0xe2022583 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  18 /*numEras*/,
  kZoneEraAntarctica_Casey /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Davis
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Davis[] ACE_TIME_PROGMEM = {
  // 0 - -00 1957 Jan 13
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    1 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1964 Nov
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0    -    -00    1969 Feb
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    2009 Oct 18  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2009 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    2010 Mar 10 20:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    10 /*untilDay*/,
    4800 /*untilTimeCode (72000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             7:00    -    %z    2011 Oct 28  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    2012 Feb 21 20:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    2 /*untilMonth*/,
    21 /*untilDay*/,
    4800 /*untilTimeCode (72000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Davis[] ACE_TIME_PROGMEM = "\x03" "Davis";

const complete::Info::ZoneInfo kZoneAntarctica_Davis ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Davis /*name*/,
  0xe2144b45 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAntarctica_Davis /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Macquarie
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Macquarie[] ACE_TIME_PROGMEM = {
  // 0 - -00 1899 Nov
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    AEST    1916 Oct  1  2:00
  {
    nullptr /*zonePolicy*/,
    "AEST" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    1:00    AEDT    1917 Feb
  {
    nullptr /*zonePolicy*/,
    "AEDT" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    60 /*deltaMinutes*/,
    1917 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1919 Apr  1  0:00s
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             0    -    -00    1948 Mar 25
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    3 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1967
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AT    AE%sT    2010
  {
    &kZonePolicyAT /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    1:00    AEDT    2011
  {
    nullptr /*zonePolicy*/,
    "AEDT" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    60 /*deltaMinutes*/,
    2011 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AT    AE%sT
  {
    &kZonePolicyAT /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Macquarie[] ACE_TIME_PROGMEM = "\x03" "Macquarie";

const complete::Info::ZoneInfo kZoneAntarctica_Macquarie ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Macquarie /*name*/,
  0x92f47626 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAntarctica_Macquarie /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Mawson
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Mawson[] ACE_TIME_PROGMEM = {
  // 0 - -00 1954 Feb 13
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1954 /*untilYear*/,
    2 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    2009 Oct 18  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2009 /*untilYear*/,
    10 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Mawson[] ACE_TIME_PROGMEM = "\x03" "Mawson";

const complete::Info::ZoneInfo kZoneAntarctica_Mawson ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Mawson /*name*/,
  0x399cd863 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAntarctica_Mawson /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Palmer
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Palmer[] ACE_TIME_PROGMEM = {
  // 0 - -00 1965
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1965 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Arg    %z    1969 Oct  5
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Arg    %z    1982 May
  {
    &kZonePolicyArg /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Chile    %z    2016 Dec  4
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    12 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Palmer[] ACE_TIME_PROGMEM = "\x03" "Palmer";

const complete::Info::ZoneInfo kZoneAntarctica_Palmer ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Palmer /*name*/,
  0x40962f4f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAntarctica_Palmer /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Rothera
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Rothera[] ACE_TIME_PROGMEM = {
  // 0 - -00 1976 Dec 1
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Rothera[] ACE_TIME_PROGMEM = "\x03" "Rothera";

const complete::Info::ZoneInfo kZoneAntarctica_Rothera ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Rothera /*name*/,
  0x0e86d203 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAntarctica_Rothera /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Troll
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Troll[] ACE_TIME_PROGMEM = {
  // 0 - -00 2005 Feb 12
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    2005 /*untilYear*/,
    2 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    Troll    %s
  {
    &kZonePolicyTroll /*zonePolicy*/,
    "%" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Troll[] ACE_TIME_PROGMEM = "\x03" "Troll";

const complete::Info::ZoneInfo kZoneAntarctica_Troll ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Troll /*name*/,
  0xe33f085b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAntarctica_Troll /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Antarctica/Vostok
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAntarctica_Vostok[] ACE_TIME_PROGMEM = {
  // 0 - -00 1957 Dec 16
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    12 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1994 Feb
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0    -    -00    1994 Nov
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    2023 Dec 18  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2023 /*untilYear*/,
    12 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAntarctica_Vostok[] ACE_TIME_PROGMEM = "\x03" "Vostok";

const complete::Info::ZoneInfo kZoneAntarctica_Vostok ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Vostok /*name*/,
  0x4f966fd4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAntarctica_Vostok /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Almaty
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Almaty[] ACE_TIME_PROGMEM = {
  // 5:07:48 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1231 /*offsetCode (18468/15)*/,
    3 /*offsetRemainder (18468%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             6:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             6:00    -    %z    2024 Mar  1  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2024 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Almaty[] ACE_TIME_PROGMEM = "\x05" "Almaty";

const complete::Info::ZoneInfo kZoneAsia_Almaty ACE_TIME_PROGMEM = {
  kZoneNameAsia_Almaty /*name*/,
  0xa61f41fa /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Almaty /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Amman
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Amman[] ACE_TIME_PROGMEM = {
  // 2:23:44 - LMT 1931
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    574 /*offsetCode (8624/15)*/,
    14 /*offsetRemainder (8624%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Jordan    EE%sT    2022 Oct 28 0:00s
  {
    &kZonePolicyJordan /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Amman[] ACE_TIME_PROGMEM = "\x05" "Amman";

const complete::Info::ZoneInfo kZoneAsia_Amman ACE_TIME_PROGMEM = {
  kZoneNameAsia_Amman /*name*/,
  0x148d21bc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Amman /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Anadyr
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Anadyr[] ACE_TIME_PROGMEM = {
  // 11:49:56 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2839 /*offsetCode (42596/15)*/,
    11 /*offsetRemainder (42596%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             13:00    Russia    %z    1982 Apr  1  0:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    Russia    %z    2010 Mar 28  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Anadyr[] ACE_TIME_PROGMEM = "\x05" "Anadyr";

const complete::Info::ZoneInfo kZoneAsia_Anadyr ACE_TIME_PROGMEM = {
  kZoneNameAsia_Anadyr /*name*/,
  0xa63cebd1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Anadyr /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Aqtau
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Aqtau[] ACE_TIME_PROGMEM = {
  // 3:21:04 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    804 /*offsetCode (12064/15)*/,
    4 /*offsetRemainder (12064%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1994 Sep 25  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    9 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Aqtau[] ACE_TIME_PROGMEM = "\x05" "Aqtau";

const complete::Info::ZoneInfo kZoneAsia_Aqtau ACE_TIME_PROGMEM = {
  kZoneNameAsia_Aqtau /*name*/,
  0x148f710e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Aqtau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Aqtobe
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Aqtobe[] ACE_TIME_PROGMEM = {
  // 3:48:40 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    914 /*offsetCode (13720/15)*/,
    10 /*offsetRemainder (13720%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    1:00    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Aqtobe[] ACE_TIME_PROGMEM = "\x05" "Aqtobe";

const complete::Info::ZoneInfo kZoneAsia_Aqtobe ACE_TIME_PROGMEM = {
  kZoneNameAsia_Aqtobe /*name*/,
  0xa67dcc4e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Aqtobe /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Ashgabat
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Ashgabat[] ACE_TIME_PROGMEM = {
  // 3:53:32 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    934 /*offsetCode (14012/15)*/,
    2 /*offsetRemainder (14012%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Ashgabat[] ACE_TIME_PROGMEM = "\x05" "Ashgabat";

const complete::Info::ZoneInfo kZoneAsia_Ashgabat ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ashgabat /*name*/,
  0xba87598d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Ashgabat /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Atyrau
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Atyrau[] ACE_TIME_PROGMEM = {
  // 3:27:44 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    830 /*offsetCode (12464/15)*/,
    14 /*offsetRemainder (12464%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1999 Mar 28  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Atyrau[] ACE_TIME_PROGMEM = "\x05" "Atyrau";

const complete::Info::ZoneInfo kZoneAsia_Atyrau ACE_TIME_PROGMEM = {
  kZoneNameAsia_Atyrau /*name*/,
  0xa6b6e068 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Atyrau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Baghdad
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Baghdad[] ACE_TIME_PROGMEM = {
  // 2:57:40 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    710 /*offsetCode (10660/15)*/,
    10 /*offsetRemainder (10660%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:57:36    -    BMT    1918
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    710 /*offsetCode (10656/15)*/,
    6 /*offsetRemainder (10656%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1982 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Iraq    %z
  {
    &kZonePolicyIraq /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Baghdad[] ACE_TIME_PROGMEM = "\x05" "Baghdad";

const complete::Info::ZoneInfo kZoneAsia_Baghdad ACE_TIME_PROGMEM = {
  kZoneNameAsia_Baghdad /*name*/,
  0x9ceffbed /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Baghdad /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Baku
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Baku[] ACE_TIME_PROGMEM = {
  // 3:19:24 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    797 /*offsetCode (11964/15)*/,
    9 /*offsetRemainder (11964%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1957 Mar
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             3:00 RussiaAsia    %z    1992 Sep lastSun  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    9 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00    -    %z    1996
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    EUAsia    %z    1997
  {
    &kZonePolicyEUAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    Azer    %z
  {
    &kZonePolicyAzer /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Baku[] ACE_TIME_PROGMEM = "\x05" "Baku";

const complete::Info::ZoneInfo kZoneAsia_Baku ACE_TIME_PROGMEM = {
  kZoneNameAsia_Baku /*name*/,
  0x1fa788b5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Baku /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Bangkok
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Bangkok[] ACE_TIME_PROGMEM = {
  // 6:42:04 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1608 /*offsetCode (24124/15)*/,
    4 /*offsetRemainder (24124%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:42:04    -    BMT    1920 Apr
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    1608 /*offsetCode (24124/15)*/,
    4 /*offsetRemainder (24124%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Bangkok[] ACE_TIME_PROGMEM = "\x05" "Bangkok";

const complete::Info::ZoneInfo kZoneAsia_Bangkok ACE_TIME_PROGMEM = {
  kZoneNameAsia_Bangkok /*name*/,
  0x9d6e3aaf /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Bangkok /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Barnaul
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Barnaul[] ACE_TIME_PROGMEM = {
  // 5:35:00 - LMT 1919 Dec 10
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1340 /*offsetCode (20100/15)*/,
    0 /*offsetRemainder (20100%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    1995 May 28
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1995 /*untilYear*/,
    5 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    -    %z    2016 Mar 27  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Barnaul[] ACE_TIME_PROGMEM = "\x05" "Barnaul";

const complete::Info::ZoneInfo kZoneAsia_Barnaul ACE_TIME_PROGMEM = {
  kZoneNameAsia_Barnaul /*name*/,
  0x9dba4997 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Barnaul /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Beirut
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Beirut[] ACE_TIME_PROGMEM = {
  // 2:22:00 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    568 /*offsetCode (8520/15)*/,
    0 /*offsetRemainder (8520%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Lebanon    EE%sT
  {
    &kZonePolicyLebanon /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Beirut[] ACE_TIME_PROGMEM = "\x05" "Beirut";

const complete::Info::ZoneInfo kZoneAsia_Beirut ACE_TIME_PROGMEM = {
  kZoneNameAsia_Beirut /*name*/,
  0xa7f3d5fd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Beirut /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Bishkek
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Bishkek[] ACE_TIME_PROGMEM = {
  // 4:58:24 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1193 /*offsetCode (17904/15)*/,
    9 /*offsetRemainder (17904%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Aug 31  2:00
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    8 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    Kyrgyz    %z    2005 Aug 12
  {
    &kZonePolicyKyrgyz /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2005 /*untilYear*/,
    8 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Bishkek[] ACE_TIME_PROGMEM = "\x05" "Bishkek";

const complete::Info::ZoneInfo kZoneAsia_Bishkek ACE_TIME_PROGMEM = {
  kZoneNameAsia_Bishkek /*name*/,
  0xb0728553 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Bishkek /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Chita
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Chita[] ACE_TIME_PROGMEM = {
  // 7:33:52 - LMT 1919 Dec 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1815 /*offsetCode (27232/15)*/,
    7 /*offsetRemainder (27232%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    -    %z    2016 Mar 27  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Chita[] ACE_TIME_PROGMEM = "\x05" "Chita";

const complete::Info::ZoneInfo kZoneAsia_Chita ACE_TIME_PROGMEM = {
  kZoneNameAsia_Chita /*name*/,
  0x14ae863b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Chita /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Colombo
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Colombo[] ACE_TIME_PROGMEM = {
  // 5:19:24 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1277 /*offsetCode (19164/15)*/,
    9 /*offsetRemainder (19164%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:19:32    -    MMT    1906
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    1278 /*offsetCode (19172/15)*/,
    2 /*offsetRemainder (19172%15)*/,
    0 /*deltaMinutes*/,
    1906 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1942 Jan  5
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    0:30    %z    1942 Sep
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    30 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    1:00    %z    1945 Oct 16  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    10 /*untilMonth*/,
    16 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1996 May 25  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    5 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:30    -    %z    1996 Oct 26  0:30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1560 /*offsetCode (23400/15)*/,
    0 /*offsetRemainder (23400%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    120 /*untilTimeCode (1800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    2006 Apr 15  0:30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2006 /*untilYear*/,
    4 /*untilMonth*/,
    15 /*untilDay*/,
    120 /*untilTimeCode (1800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Colombo[] ACE_TIME_PROGMEM = "\x05" "Colombo";

const complete::Info::ZoneInfo kZoneAsia_Colombo ACE_TIME_PROGMEM = {
  kZoneNameAsia_Colombo /*name*/,
  0x0af0e91d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Colombo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Damascus
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Damascus[] ACE_TIME_PROGMEM = {
  // 2:25:12 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    580 /*offsetCode (8712/15)*/,
    12 /*offsetRemainder (8712%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Syria    EE%sT    2022 Oct 28 0:00
  {
    &kZonePolicySyria /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2022 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Damascus[] ACE_TIME_PROGMEM = "\x05" "Damascus";

const complete::Info::ZoneInfo kZoneAsia_Damascus ACE_TIME_PROGMEM = {
  kZoneNameAsia_Damascus /*name*/,
  0x20fbb063 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Damascus /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Dhaka
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Dhaka[] ACE_TIME_PROGMEM = {
  // 6:01:40 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1446 /*offsetCode (21700/15)*/,
    10 /*offsetRemainder (21700%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:53:20    -    HMT    1941 Oct
  {
    nullptr /*zonePolicy*/,
    "HMT" /*format*/,
    1413 /*offsetCode (21200/15)*/,
    5 /*offsetRemainder (21200%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:30    -    %z    1942 May 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1560 /*offsetCode (23400/15)*/,
    0 /*offsetRemainder (23400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1942 Sep
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:30    -    %z    1951 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1560 /*offsetCode (23400/15)*/,
    0 /*offsetRemainder (23400%15)*/,
    0 /*deltaMinutes*/,
    1951 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    2009
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2009 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    Dhaka    %z
  {
    &kZonePolicyDhaka /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Dhaka[] ACE_TIME_PROGMEM = "\x05" "Dhaka";

const complete::Info::ZoneInfo kZoneAsia_Dhaka ACE_TIME_PROGMEM = {
  kZoneNameAsia_Dhaka /*name*/,
  0x14c07b8b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Dhaka /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Dili
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Dili[] ACE_TIME_PROGMEM = {
  // 8:22:20 - LMT 1911 Dec 31 16:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2009 /*offsetCode (30140/15)*/,
    5 /*offsetRemainder (30140%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    3840 /*untilTimeCode (57600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             8:00    -    %z    1942 Feb 21 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    21 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1976 May  3
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    5 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    2000 Sep 17  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    9 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Dili[] ACE_TIME_PROGMEM = "\x05" "Dili";

const complete::Info::ZoneInfo kZoneAsia_Dili ACE_TIME_PROGMEM = {
  kZoneNameAsia_Dili /*name*/,
  0x1fa8c394 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Dili /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Dubai
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Dubai[] ACE_TIME_PROGMEM = {
  // 3:41:12 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    884 /*offsetCode (13272/15)*/,
    12 /*offsetRemainder (13272%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Dubai[] ACE_TIME_PROGMEM = "\x05" "Dubai";

const complete::Info::ZoneInfo kZoneAsia_Dubai ACE_TIME_PROGMEM = {
  kZoneNameAsia_Dubai /*name*/,
  0x14c79f77 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Dubai /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Dushanbe
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Dushanbe[] ACE_TIME_PROGMEM = {
  // 4:35:12 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1100 /*offsetCode (16512/15)*/,
    12 /*offsetRemainder (16512%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    1:00    %z    1991 Sep  9  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1991 /*untilYear*/,
    9 /*untilMonth*/,
    9 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Dushanbe[] ACE_TIME_PROGMEM = "\x05" "Dushanbe";

const complete::Info::ZoneInfo kZoneAsia_Dushanbe ACE_TIME_PROGMEM = {
  kZoneNameAsia_Dushanbe /*name*/,
  0x32fc5c3c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Dushanbe /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Famagusta
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Famagusta[] ACE_TIME_PROGMEM = {
  // 2:15:48 - LMT 1921 Nov 14
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    543 /*offsetCode (8148/15)*/,
    3 /*offsetRemainder (8148%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    11 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Cyprus    EE%sT    1998 Sep
  {
    &kZonePolicyCyprus /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EUAsia    EE%sT    2016 Sep  8
  {
    &kZonePolicyEUAsia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    9 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    2017 Oct 29 1:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2017 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    EUAsia    EE%sT
  {
    &kZonePolicyEUAsia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Famagusta[] ACE_TIME_PROGMEM = "\x05" "Famagusta";

const complete::Info::ZoneInfo kZoneAsia_Famagusta ACE_TIME_PROGMEM = {
  kZoneNameAsia_Famagusta /*name*/,
  0x289b4f8b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Famagusta /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Gaza
// Eras: 12
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Gaza[] ACE_TIME_PROGMEM = {
  // 2:17:52 - LMT 1900 Oct
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    551 /*offsetCode (8272/15)*/,
    7 /*offsetRemainder (8272%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Zion    EET/EEST 1948 May 15
  {
    &kZonePolicyZion /*zonePolicy*/,
    "EET/EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    5 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 EgyptAsia    EE%sT    1967 Jun  5
  {
    &kZonePolicyEgyptAsia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    6 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Zion    I%sT    1996
  {
    &kZonePolicyZion /*zonePolicy*/,
    "I%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Jordan    EE%sT    1999
  {
    &kZonePolicyJordan /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 Palestine    EE%sT    2008 Aug 29  0:00
  {
    &kZonePolicyPalestine /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    8 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2008 Sep
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2008 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 Palestine    EE%sT    2010
  {
    &kZonePolicyPalestine /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2010 Mar 27  0:01
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 Palestine    EE%sT    2011 Aug  1
  {
    &kZonePolicyPalestine /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2012
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2012 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 Palestine    EE%sT
  {
    &kZonePolicyPalestine /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Gaza[] ACE_TIME_PROGMEM = "\x05" "Gaza";

const complete::Info::ZoneInfo kZoneAsia_Gaza ACE_TIME_PROGMEM = {
  kZoneNameAsia_Gaza /*name*/,
  0x1faa4875 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAsia_Gaza /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Hebron
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Hebron[] ACE_TIME_PROGMEM = {
  // 2:20:23 - LMT 1900 Oct
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    561 /*offsetCode (8423/15)*/,
    8 /*offsetRemainder (8423%15)*/,
    0 /*deltaMinutes*/,
    1900 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Zion    EET/EEST 1948 May 15
  {
    &kZonePolicyZion /*zonePolicy*/,
    "EET/EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    5 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 EgyptAsia    EE%sT    1967 Jun  5
  {
    &kZonePolicyEgyptAsia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    6 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Zion    I%sT    1996
  {
    &kZonePolicyZion /*zonePolicy*/,
    "I%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Jordan    EE%sT    1999
  {
    &kZonePolicyJordan /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00 Palestine    EE%sT
  {
    &kZonePolicyPalestine /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Hebron[] ACE_TIME_PROGMEM = "\x05" "Hebron";

const complete::Info::ZoneInfo kZoneAsia_Hebron ACE_TIME_PROGMEM = {
  kZoneNameAsia_Hebron /*name*/,
  0xb5eef250 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Hebron /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Ho_Chi_Minh
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = {
  // 7:06:30 - LMT 1906 Jul 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1706 /*offsetCode (25590/15)*/,
    0 /*offsetRemainder (25590%15)*/,
    0 /*deltaMinutes*/,
    1906 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:06:30    -    PLMT    1911 May  1
  {
    nullptr /*zonePolicy*/,
    "PLMT" /*format*/,
    1706 /*offsetCode (25590/15)*/,
    0 /*offsetRemainder (25590%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1942 Dec 31 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1945 Mar 14 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    3 /*untilMonth*/,
    14 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep  1 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1947 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1955 Jul  1 01:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1955 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1959 Dec 31 23:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1959 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1975 Jun 13
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    6 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Ho_Chi_Minh[] ACE_TIME_PROGMEM = "\x05" "Ho_Chi_Minh";

const complete::Info::ZoneInfo kZoneAsia_Ho_Chi_Minh ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ho_Chi_Minh /*name*/,
  0x20f2d127 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Hong_Kong
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Hong_Kong[] ACE_TIME_PROGMEM = {
  // 7:36:42 - LMT 1904 Oct 29 17:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1826 /*offsetCode (27402/15)*/,
    12 /*offsetRemainder (27402%15)*/,
    0 /*deltaMinutes*/,
    1904 /*untilYear*/,
    10 /*untilMonth*/,
    29 /*untilDay*/,
    4080 /*untilTimeCode (61200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             8:00    -    HKT    1941 Jun 15  3:00
  {
    nullptr /*zonePolicy*/,
    "HKT" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    6 /*untilMonth*/,
    15 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    1:00    HKST    1941 Oct  1  4:00
  {
    nullptr /*zonePolicy*/,
    "HKST" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    60 /*deltaMinutes*/,
    1941 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    0:30    HKWT    1941 Dec 25
  {
    nullptr /*zonePolicy*/,
    "HKWT" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    30 /*deltaMinutes*/,
    1941 /*untilYear*/,
    12 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    JST    1945 Nov 18  2:00
  {
    nullptr /*zonePolicy*/,
    "JST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    11 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    HK    HK%sT
  {
    &kZonePolicyHK /*zonePolicy*/,
    "HK%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Hong_Kong[] ACE_TIME_PROGMEM = "\x05" "Hong_Kong";

const complete::Info::ZoneInfo kZoneAsia_Hong_Kong ACE_TIME_PROGMEM = {
  kZoneNameAsia_Hong_Kong /*name*/,
  0x577f28ac /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Hong_Kong /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Hovd
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Hovd[] ACE_TIME_PROGMEM = {
  // 6:06:36 - LMT 1905 Aug
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1466 /*offsetCode (21996/15)*/,
    6 /*offsetRemainder (21996%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1978
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1978 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    Mongol    %z
  {
    &kZonePolicyMongol /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Hovd[] ACE_TIME_PROGMEM = "\x05" "Hovd";

const complete::Info::ZoneInfo kZoneAsia_Hovd ACE_TIME_PROGMEM = {
  kZoneNameAsia_Hovd /*name*/,
  0x1fab0fe3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Hovd /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Irkutsk
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Irkutsk[] ACE_TIME_PROGMEM = {
  // 6:57:05 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1668 /*offsetCode (25025/15)*/,
    5 /*offsetRemainder (25025%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:57:05 -    IMT    1920 Jan 25
  {
    nullptr /*zonePolicy*/,
    "IMT" /*format*/,
    1668 /*offsetCode (25025/15)*/,
    5 /*offsetRemainder (25025%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Irkutsk[] ACE_TIME_PROGMEM = "\x05" "Irkutsk";

const complete::Info::ZoneInfo kZoneAsia_Irkutsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Irkutsk /*name*/,
  0xdfbf213f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Irkutsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Jakarta
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Jakarta[] ACE_TIME_PROGMEM = {
  // 7:07:12 - LMT 1867 Aug 10
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1708 /*offsetCode (25632/15)*/,
    12 /*offsetRemainder (25632%15)*/,
    0 /*deltaMinutes*/,
    1867 /*untilYear*/,
    8 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:07:12    -    BMT    1923 Dec 31 16:40u
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    1708 /*offsetCode (25632/15)*/,
    12 /*offsetRemainder (25632%15)*/,
    0 /*deltaMinutes*/,
    1923 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    4000 /*untilTimeCode (60000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             7:20    -    %z    1932 Nov
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1760 /*offsetCode (26400/15)*/,
    0 /*offsetRemainder (26400%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1942 Mar 23
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    3 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep 23
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1948 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1950 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1950 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1964
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    WIB
  {
    nullptr /*zonePolicy*/,
    "WIB" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Jakarta[] ACE_TIME_PROGMEM = "\x05" "Jakarta";

const complete::Info::ZoneInfo kZoneAsia_Jakarta ACE_TIME_PROGMEM = {
  kZoneNameAsia_Jakarta /*name*/,
  0x0506ab50 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Jakarta /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Jayapura
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Jayapura[] ACE_TIME_PROGMEM = {
  // 9:22:48 - LMT 1932 Nov
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2251 /*offsetCode (33768/15)*/,
    3 /*offsetRemainder (33768%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1944 Sep  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    -    %z    1964
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    WIT
  {
    nullptr /*zonePolicy*/,
    "WIT" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Jayapura[] ACE_TIME_PROGMEM = "\x05" "Jayapura";

const complete::Info::ZoneInfo kZoneAsia_Jayapura ACE_TIME_PROGMEM = {
  kZoneNameAsia_Jayapura /*name*/,
  0xc6833c2f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Jayapura /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Jerusalem
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Jerusalem[] ACE_TIME_PROGMEM = {
  // 2:20:54 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    563 /*offsetCode (8454/15)*/,
    9 /*offsetRemainder (8454%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:20:40    -    JMT    1918
  {
    nullptr /*zonePolicy*/,
    "JMT" /*format*/,
    562 /*offsetCode (8440/15)*/,
    10 /*offsetRemainder (8440%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Zion    I%sT
  {
    &kZonePolicyZion /*zonePolicy*/,
    "I%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Jerusalem[] ACE_TIME_PROGMEM = "\x05" "Jerusalem";

const complete::Info::ZoneInfo kZoneAsia_Jerusalem ACE_TIME_PROGMEM = {
  kZoneNameAsia_Jerusalem /*name*/,
  0x5becd23a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Jerusalem /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Kabul
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Kabul[] ACE_TIME_PROGMEM = {
  // 4:36:48 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1107 /*offsetCode (16608/15)*/,
    3 /*offsetRemainder (16608%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1945
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:30    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1080 /*offsetCode (16200/15)*/,
    0 /*offsetRemainder (16200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Kabul[] ACE_TIME_PROGMEM = "\x05" "Kabul";

const complete::Info::ZoneInfo kZoneAsia_Kabul ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kabul /*name*/,
  0x153b5601 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Kabul /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Kamchatka
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Kamchatka[] ACE_TIME_PROGMEM = {
  // 10:34:36 - LMT 1922 Nov 10
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2538 /*offsetCode (38076/15)*/,
    6 /*offsetRemainder (38076%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    11 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    Russia    %z    2010 Mar 28  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Kamchatka[] ACE_TIME_PROGMEM = "\x05" "Kamchatka";

const complete::Info::ZoneInfo kZoneAsia_Kamchatka ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kamchatka /*name*/,
  0x73baf9d7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Kamchatka /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Karachi
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Karachi[] ACE_TIME_PROGMEM = {
  // 4:28:12 - LMT 1907
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1072 /*offsetCode (16092/15)*/,
    12 /*offsetRemainder (16092%15)*/,
    0 /*deltaMinutes*/,
    1907 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1942 Sep
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    1:00    %z    1945 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1951 Sep 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1951 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1971 Mar 26
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 Pakistan    PK%sT
  {
    &kZonePolicyPakistan /*zonePolicy*/,
    "PK%T" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Karachi[] ACE_TIME_PROGMEM = "\x05" "Karachi";

const complete::Info::ZoneInfo kZoneAsia_Karachi ACE_TIME_PROGMEM = {
  kZoneNameAsia_Karachi /*name*/,
  0x527f5245 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Karachi /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Kathmandu
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Kathmandu[] ACE_TIME_PROGMEM = {
  // 5:41:16 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1365 /*offsetCode (20476/15)*/,
    1 /*offsetRemainder (20476%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1986
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:45    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1380 /*offsetCode (20700/15)*/,
    0 /*offsetRemainder (20700%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Kathmandu[] ACE_TIME_PROGMEM = "\x05" "Kathmandu";

const complete::Info::ZoneInfo kZoneAsia_Kathmandu ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kathmandu /*name*/,
  0x9a96ce6f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Kathmandu /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Khandyga
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Khandyga[] ACE_TIME_PROGMEM = {
  // 9:02:13 - LMT 1919 Dec 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2168 /*offsetCode (32533/15)*/,
    13 /*offsetRemainder (32533%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    Russia    %z    2004
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z    2011 Sep 13  0:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Khandyga[] ACE_TIME_PROGMEM = "\x05" "Khandyga";

const complete::Info::ZoneInfo kZoneAsia_Khandyga ACE_TIME_PROGMEM = {
  kZoneNameAsia_Khandyga /*name*/,
  0x9685a4d9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Khandyga /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Kolkata
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Kolkata[] ACE_TIME_PROGMEM = {
  // 5:53:28 - LMT 1854 Jun 28
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1413 /*offsetCode (21208/15)*/,
    13 /*offsetRemainder (21208%15)*/,
    0 /*deltaMinutes*/,
    1854 /*untilYear*/,
    6 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:53:20    -    HMT    1870
  {
    nullptr /*zonePolicy*/,
    "HMT" /*format*/,
    1413 /*offsetCode (21200/15)*/,
    5 /*offsetRemainder (21200%15)*/,
    0 /*deltaMinutes*/,
    1870 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:21:10    -    MMT    1906 Jan  1
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    1284 /*offsetCode (19270/15)*/,
    10 /*offsetRemainder (19270%15)*/,
    0 /*deltaMinutes*/,
    1906 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    IST    1941 Oct
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    1:00    %z    1942 May 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    60 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    IST    1942 Sep
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    1:00    %z    1945 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    IST
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Kolkata[] ACE_TIME_PROGMEM = "\x05" "Kolkata";

const complete::Info::ZoneInfo kZoneAsia_Kolkata ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kolkata /*name*/,
  0x72c06cd9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Kolkata /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Krasnoyarsk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = {
  // 6:11:26 - LMT 1920 Jan 6
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1485 /*offsetCode (22286/15)*/,
    11 /*offsetRemainder (22286%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Krasnoyarsk[] ACE_TIME_PROGMEM = "\x05" "Krasnoyarsk";

const complete::Info::ZoneInfo kZoneAsia_Krasnoyarsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Krasnoyarsk /*name*/,
  0xd0376c6a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Krasnoyarsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Kuching
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Kuching[] ACE_TIME_PROGMEM = {
  // 7:21:20 - LMT 1926 Mar
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1765 /*offsetCode (26480/15)*/,
    5 /*offsetRemainder (26480%15)*/,
    0 /*deltaMinutes*/,
    1926 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1933
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1933 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00 NBorneo    %z    1942 Feb 16
  {
    &kZonePolicyNBorneo /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep 12
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Kuching[] ACE_TIME_PROGMEM = "\x05" "Kuching";

const complete::Info::ZoneInfo kZoneAsia_Kuching ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kuching /*name*/,
  0x801b003b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Kuching /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Macau
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Macau[] ACE_TIME_PROGMEM = {
  // 7:34:10 - LMT 1904 Oct 30
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1816 /*offsetCode (27250/15)*/,
    10 /*offsetRemainder (27250%15)*/,
    0 /*deltaMinutes*/,
    1904 /*untilYear*/,
    10 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    CST    1941 Dec 21 23:00
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    12 /*untilMonth*/,
    21 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    Macau    %z    1945 Sep 30 24:00
  {
    &kZonePolicyMacau /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    Macau    C%sT
  {
    &kZonePolicyMacau /*zonePolicy*/,
    "C%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Macau[] ACE_TIME_PROGMEM = "\x05" "Macau";

const complete::Info::ZoneInfo kZoneAsia_Macau ACE_TIME_PROGMEM = {
  kZoneNameAsia_Macau /*name*/,
  0x155f88b9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Macau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Magadan
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Magadan[] ACE_TIME_PROGMEM = {
  // 10:03:12 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2412 /*offsetCode (36192/15)*/,
    12 /*offsetRemainder (36192%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z    2016 Apr 24  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    4 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Magadan[] ACE_TIME_PROGMEM = "\x05" "Magadan";

const complete::Info::ZoneInfo kZoneAsia_Magadan ACE_TIME_PROGMEM = {
  kZoneNameAsia_Magadan /*name*/,
  0xebacc19b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Magadan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Makassar
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Makassar[] ACE_TIME_PROGMEM = {
  // 7:57:36 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1910 /*offsetCode (28656/15)*/,
    6 /*offsetRemainder (28656%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:57:36    -    MMT    1932 Nov
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    1910 /*offsetCode (28656/15)*/,
    6 /*offsetRemainder (28656%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1942 Feb  9
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    9 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep 23
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    WITA
  {
    nullptr /*zonePolicy*/,
    "WITA" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Makassar[] ACE_TIME_PROGMEM = "\x05" "Makassar";

const complete::Info::ZoneInfo kZoneAsia_Makassar ACE_TIME_PROGMEM = {
  kZoneNameAsia_Makassar /*name*/,
  0x6aa21c85 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Makassar /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Manila
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Manila[] ACE_TIME_PROGMEM = {
  // -15:56:08 - LMT 1844 Dec 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -3825 /*offsetCode (-57368/15)*/,
    7 /*offsetRemainder (-57368%15)*/,
    0 /*deltaMinutes*/,
    1844 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:03:52 -    LMT    1899 Sep  6  4:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1935 /*offsetCode (29032/15)*/,
    7 /*offsetRemainder (29032%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    9 /*untilMonth*/,
    6 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             8:00    Phil    P%sT    1942 Feb 11 24:00
  {
    &kZonePolicyPhil /*zonePolicy*/,
    "P%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    11 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    JST    1945 Mar  4
  {
    nullptr /*zonePolicy*/,
    "JST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    3 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    Phil    P%sT
  {
    &kZonePolicyPhil /*zonePolicy*/,
    "P%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Manila[] ACE_TIME_PROGMEM = "\x05" "Manila";

const complete::Info::ZoneInfo kZoneAsia_Manila ACE_TIME_PROGMEM = {
  kZoneNameAsia_Manila /*name*/,
  0xc156c944 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Manila /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Nicosia
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Nicosia[] ACE_TIME_PROGMEM = {
  // 2:13:28 - LMT 1921 Nov 14
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    533 /*offsetCode (8008/15)*/,
    13 /*offsetRemainder (8008%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    11 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Cyprus    EE%sT    1998 Sep
  {
    &kZonePolicyCyprus /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EUAsia    EE%sT
  {
    &kZonePolicyEUAsia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Nicosia[] ACE_TIME_PROGMEM = "\x05" "Nicosia";

const complete::Info::ZoneInfo kZoneAsia_Nicosia ACE_TIME_PROGMEM = {
  kZoneNameAsia_Nicosia /*name*/,
  0x4b0fcf78 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Nicosia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Novokuznetsk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Novokuznetsk[] ACE_TIME_PROGMEM = {
  // 5:48:48 - LMT 1924 May 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1395 /*offsetCode (20928/15)*/,
    3 /*offsetRemainder (20928%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    2010 Mar 28  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Novokuznetsk[] ACE_TIME_PROGMEM = "\x05" "Novokuznetsk";

const complete::Info::ZoneInfo kZoneAsia_Novokuznetsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Novokuznetsk /*name*/,
  0x69264f93 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Novokuznetsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Novosibirsk
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Novosibirsk[] ACE_TIME_PROGMEM = {
  // 5:31:40 - LMT 1919 Dec 14 6:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1326 /*offsetCode (19900/15)*/,
    10 /*offsetRemainder (19900%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    14 /*untilDay*/,
    1440 /*untilTimeCode (21600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    1993 May 23
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    5 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    -    %z    2016 Jul 24  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    7 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Novosibirsk[] ACE_TIME_PROGMEM = "\x05" "Novosibirsk";

const complete::Info::ZoneInfo kZoneAsia_Novosibirsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Novosibirsk /*name*/,
  0xa2a435cb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Novosibirsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Omsk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Omsk[] ACE_TIME_PROGMEM = {
  // 4:53:30 - LMT 1919 Nov 14
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1174 /*offsetCode (17610/15)*/,
    0 /*offsetRemainder (17610%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    11 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              5:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              5:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Omsk[] ACE_TIME_PROGMEM = "\x05" "Omsk";

const complete::Info::ZoneInfo kZoneAsia_Omsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Omsk /*name*/,
  0x1faeddac /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Omsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Oral
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Oral[] ACE_TIME_PROGMEM = {
  // 3:25:24 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    821 /*offsetCode (12324/15)*/,
    9 /*offsetRemainder (12324%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    1:00    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1989 Mar 26  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1992 Mar 29  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Oral[] ACE_TIME_PROGMEM = "\x05" "Oral";

const complete::Info::ZoneInfo kZoneAsia_Oral ACE_TIME_PROGMEM = {
  kZoneNameAsia_Oral /*name*/,
  0x1faef0a0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAsia_Oral /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Pontianak
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Pontianak[] ACE_TIME_PROGMEM = {
  // 7:17:20 - LMT 1908 May
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1749 /*offsetCode (26240/15)*/,
    5 /*offsetRemainder (26240%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:17:20    -    PMT    1932 Nov
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    1749 /*offsetCode (26240/15)*/,
    5 /*offsetRemainder (26240%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1942 Jan 29
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    1 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep 23
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1948 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    %z    1950 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1950 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1964
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    WITA    1988 Jan  1
  {
    nullptr /*zonePolicy*/,
    "WITA" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    WIB
  {
    nullptr /*zonePolicy*/,
    "WIB" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Pontianak[] ACE_TIME_PROGMEM = "\x05" "Pontianak";

const complete::Info::ZoneInfo kZoneAsia_Pontianak ACE_TIME_PROGMEM = {
  kZoneNameAsia_Pontianak /*name*/,
  0x1a76c057 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Pontianak /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Pyongyang
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Pyongyang[] ACE_TIME_PROGMEM = {
  // 8:23:00 - LMT 1908 Apr 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2012 /*offsetCode (30180/15)*/,
    0 /*offsetRemainder (30180%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:30    -    KST    1912 Jan  1
  {
    nullptr /*zonePolicy*/,
    "KST" /*format*/,
    2040 /*offsetCode (30600/15)*/,
    0 /*offsetRemainder (30600%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    JST    1945 Aug 24
  {
    nullptr /*zonePolicy*/,
    "JST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    8 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    KST    2015 Aug 15 00:00
  {
    nullptr /*zonePolicy*/,
    "KST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    8 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:30    -    KST    2018 May  4 23:30
  {
    nullptr /*zonePolicy*/,
    "KST" /*format*/,
    2040 /*offsetCode (30600/15)*/,
    0 /*offsetRemainder (30600%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    5 /*untilMonth*/,
    4 /*untilDay*/,
    5640 /*untilTimeCode (84600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    KST
  {
    nullptr /*zonePolicy*/,
    "KST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Pyongyang[] ACE_TIME_PROGMEM = "\x05" "Pyongyang";

const complete::Info::ZoneInfo kZoneAsia_Pyongyang ACE_TIME_PROGMEM = {
  kZoneNameAsia_Pyongyang /*name*/,
  0x93ed1c8e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Pyongyang /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Qatar
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Qatar[] ACE_TIME_PROGMEM = {
  // 3:26:08 - LMT 1920
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    824 /*offsetCode (12368/15)*/,
    8 /*offsetRemainder (12368%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1972 Jun
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1972 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Qatar[] ACE_TIME_PROGMEM = "\x05" "Qatar";

const complete::Info::ZoneInfo kZoneAsia_Qatar ACE_TIME_PROGMEM = {
  kZoneNameAsia_Qatar /*name*/,
  0x15a8330b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Qatar /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Qostanay
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Qostanay[] ACE_TIME_PROGMEM = {
  // 4:14:28 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1017 /*offsetCode (15268/15)*/,
    13 /*offsetRemainder (15268%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    1:00    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             6:00    -    %z    2024 Mar  1  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2024 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Qostanay[] ACE_TIME_PROGMEM = "\x05" "Qostanay";

const complete::Info::ZoneInfo kZoneAsia_Qostanay ACE_TIME_PROGMEM = {
  kZoneNameAsia_Qostanay /*name*/,
  0x654fe522 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAsia_Qostanay /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Qyzylorda
// Eras: 12
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Qyzylorda[] ACE_TIME_PROGMEM = {
  // 4:21:52 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1047 /*offsetCode (15712/15)*/,
    7 /*offsetRemainder (15712%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    1:00    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    1991 Sep 29  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    9 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             6:00 RussiaAsia    %z    1992 Mar 29  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    2004 Oct 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             6:00    -    %z    2018 Dec 21  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    12 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Qyzylorda[] ACE_TIME_PROGMEM = "\x05" "Qyzylorda";

const complete::Info::ZoneInfo kZoneAsia_Qyzylorda ACE_TIME_PROGMEM = {
  kZoneNameAsia_Qyzylorda /*name*/,
  0x71282e81 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAsia_Qyzylorda /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Riyadh
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Riyadh[] ACE_TIME_PROGMEM = {
  // 3:06:52 - LMT 1947 Mar 14
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    747 /*offsetCode (11212/15)*/,
    7 /*offsetRemainder (11212%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    3 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Riyadh[] ACE_TIME_PROGMEM = "\x05" "Riyadh";

const complete::Info::ZoneInfo kZoneAsia_Riyadh ACE_TIME_PROGMEM = {
  kZoneNameAsia_Riyadh /*name*/,
  0xcd973d93 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Riyadh /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Sakhalin
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Sakhalin[] ACE_TIME_PROGMEM = {
  // 9:30:48 - LMT 1905 Aug 23
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2283 /*offsetCode (34248/15)*/,
    3 /*offsetRemainder (34248%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    8 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z    1945 Aug 25
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    8 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    1997 Mar lastSun  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z    2016 Mar 27  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Sakhalin[] ACE_TIME_PROGMEM = "\x05" "Sakhalin";

const complete::Info::ZoneInfo kZoneAsia_Sakhalin ACE_TIME_PROGMEM = {
  kZoneNameAsia_Sakhalin /*name*/,
  0xf4a1c9bd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Sakhalin /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Samarkand
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Samarkand[] ACE_TIME_PROGMEM = {
  // 4:27:53 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1071 /*offsetCode (16073/15)*/,
    8 /*offsetRemainder (16073%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1981 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    1:00    %z    1981 Oct  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    60 /*deltaMinutes*/,
    1981 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z    1982 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1992
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Samarkand[] ACE_TIME_PROGMEM = "\x05" "Samarkand";

const complete::Info::ZoneInfo kZoneAsia_Samarkand ACE_TIME_PROGMEM = {
  kZoneNameAsia_Samarkand /*name*/,
  0x13ae5104 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Samarkand /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Seoul
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Seoul[] ACE_TIME_PROGMEM = {
  // 8:27:52 - LMT 1908 Apr 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2031 /*offsetCode (30472/15)*/,
    7 /*offsetRemainder (30472%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:30    -    KST    1912 Jan  1
  {
    nullptr /*zonePolicy*/,
    "KST" /*format*/,
    2040 /*offsetCode (30600/15)*/,
    0 /*offsetRemainder (30600%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    JST    1945 Sep  8
  {
    nullptr /*zonePolicy*/,
    "JST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    ROK    K%sT    1954 Mar 21
  {
    &kZonePolicyROK /*zonePolicy*/,
    "K%T" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1954 /*untilYear*/,
    3 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:30    ROK    K%sT    1961 Aug 10
  {
    &kZonePolicyROK /*zonePolicy*/,
    "K%T" /*format*/,
    2040 /*offsetCode (30600/15)*/,
    0 /*offsetRemainder (30600%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    8 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    ROK    K%sT
  {
    &kZonePolicyROK /*zonePolicy*/,
    "K%T" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Seoul[] ACE_TIME_PROGMEM = "\x05" "Seoul";

const complete::Info::ZoneInfo kZoneAsia_Seoul ACE_TIME_PROGMEM = {
  kZoneNameAsia_Seoul /*name*/,
  0x15ce82da /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Seoul /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Shanghai
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Shanghai[] ACE_TIME_PROGMEM = {
  // 8:05:43 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1942 /*offsetCode (29143/15)*/,
    13 /*offsetRemainder (29143%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    Shang    C%sT    1949 May 28
  {
    &kZonePolicyShang /*zonePolicy*/,
    "C%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1949 /*untilYear*/,
    5 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    PRC    C%sT
  {
    &kZonePolicyPRC /*zonePolicy*/,
    "C%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Shanghai[] ACE_TIME_PROGMEM = "\x05" "Shanghai";

const complete::Info::ZoneInfo kZoneAsia_Shanghai ACE_TIME_PROGMEM = {
  kZoneNameAsia_Shanghai /*name*/,
  0xf895a7f5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Shanghai /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Singapore
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Singapore[] ACE_TIME_PROGMEM = {
  // 6:55:25 - LMT 1901 Jan 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1661 /*offsetCode (24925/15)*/,
    10 /*offsetRemainder (24925%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:55:25    -    SMT    1905 Jun  1
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    1661 /*offsetCode (24925/15)*/,
    10 /*offsetRemainder (24925%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1933 Jan  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1933 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    0:20    %z    1936 Jan  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    20 /*deltaMinutes*/,
    1936 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:20    -    %z    1941 Sep  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1760 /*offsetCode (26400/15)*/,
    0 /*offsetRemainder (26400%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1942 Feb 16
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    2 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 Sep 12
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:30    -    %z    1981 Dec 31 16:00u
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1800 /*offsetCode (27000/15)*/,
    0 /*offsetRemainder (27000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    3840 /*untilTimeCode (57600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             8:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Singapore[] ACE_TIME_PROGMEM = "\x05" "Singapore";

const complete::Info::ZoneInfo kZoneAsia_Singapore ACE_TIME_PROGMEM = {
  kZoneNameAsia_Singapore /*name*/,
  0xcf8581fa /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Singapore /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Srednekolymsk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Srednekolymsk[] ACE_TIME_PROGMEM = {
  // 10:14:52 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2459 /*offsetCode (36892/15)*/,
    7 /*offsetRemainder (36892%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Srednekolymsk[] ACE_TIME_PROGMEM = "\x05" "Srednekolymsk";

const complete::Info::ZoneInfo kZoneAsia_Srednekolymsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Srednekolymsk /*name*/,
  0xbf8e337d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Srednekolymsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Taipei
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Taipei[] ACE_TIME_PROGMEM = {
  // 8:06:00 - LMT 1896 Jan 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1944 /*offsetCode (29160/15)*/,
    0 /*offsetRemainder (29160%15)*/,
    0 /*deltaMinutes*/,
    1896 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    -    CST    1937 Oct  1
  {
    nullptr /*zonePolicy*/,
    "CST" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1937 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    JST    1945 Sep 21  1:00
  {
    nullptr /*zonePolicy*/,
    "JST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    21 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    Taiwan    C%sT
  {
    &kZonePolicyTaiwan /*zonePolicy*/,
    "C%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Taipei[] ACE_TIME_PROGMEM = "\x05" "Taipei";

const complete::Info::ZoneInfo kZoneAsia_Taipei ACE_TIME_PROGMEM = {
  kZoneNameAsia_Taipei /*name*/,
  0xd1a844ae /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Taipei /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Tashkent
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Tashkent[] ACE_TIME_PROGMEM = {
  // 4:37:11 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1108 /*offsetCode (16631/15)*/,
    11 /*offsetRemainder (16631%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00 RussiaAsia    %z    1991 Mar 31  2:00
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00 RussiaAsia    %z    1992
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Tashkent[] ACE_TIME_PROGMEM = "\x05" "Tashkent";

const complete::Info::ZoneInfo kZoneAsia_Tashkent ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tashkent /*name*/,
  0xf3924254 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Tashkent /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Tbilisi
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Tbilisi[] ACE_TIME_PROGMEM = {
  // 2:59:11 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    716 /*offsetCode (10751/15)*/,
    11 /*offsetRemainder (10751%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:59:11    -    TBMT    1924 May  2
  {
    nullptr /*zonePolicy*/,
    "TBMT" /*format*/,
    716 /*offsetCode (10751/15)*/,
    11 /*offsetRemainder (10751%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1957 Mar
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             3:00 RussiaAsia %z    1992
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00 E-EurAsia    %z    1994 Sep lastSun
  {
    &kZonePolicyE_EurAsia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    9 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 E-EurAsia    %z    1996 Oct lastSun
  {
    &kZonePolicyE_EurAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    1:00    %z    1997 Mar lastSun
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    60 /*deltaMinutes*/,
    1997 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 E-EurAsia    %z    2004 Jun 27
  {
    &kZonePolicyE_EurAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2004 /*untilYear*/,
    6 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00 RussiaAsia    %z    2005 Mar lastSun  2:00
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2005 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Tbilisi[] ACE_TIME_PROGMEM = "\x05" "Tbilisi";

const complete::Info::ZoneInfo kZoneAsia_Tbilisi ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tbilisi /*name*/,
  0x0903e442 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAsia_Tbilisi /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Tehran
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Tehran[] ACE_TIME_PROGMEM = {
  // 3:25:44 - LMT 1916
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    822 /*offsetCode (12344/15)*/,
    14 /*offsetRemainder (12344%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:25:44    -    TMT    1935 Jun 13
  {
    nullptr /*zonePolicy*/,
    "TMT" /*format*/,
    822 /*offsetCode (12344/15)*/,
    14 /*offsetRemainder (12344%15)*/,
    0 /*deltaMinutes*/,
    1935 /*untilYear*/,
    6 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:30    Iran    %z    1977 Oct 20 24:00
  {
    &kZonePolicyIran /*zonePolicy*/,
    "" /*format*/,
    840 /*offsetCode (12600/15)*/,
    0 /*offsetRemainder (12600%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    Iran    %z    1978 Nov 10 24:00
  {
    &kZonePolicyIran /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1978 /*untilYear*/,
    11 /*untilMonth*/,
    10 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:30    Iran    %z
  {
    &kZonePolicyIran /*zonePolicy*/,
    "" /*format*/,
    840 /*offsetCode (12600/15)*/,
    0 /*offsetRemainder (12600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Tehran[] ACE_TIME_PROGMEM = "\x05" "Tehran";

const complete::Info::ZoneInfo kZoneAsia_Tehran ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tehran /*name*/,
  0xd1f02254 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Tehran /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Thimphu
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Thimphu[] ACE_TIME_PROGMEM = {
  // 5:58:36 - LMT 1947 Aug 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1434 /*offsetCode (21516/15)*/,
    6 /*offsetRemainder (21516%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    8 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:30    -    %z    1987 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1320 /*offsetCode (19800/15)*/,
    0 /*offsetRemainder (19800%15)*/,
    0 /*deltaMinutes*/,
    1987 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Thimphu[] ACE_TIME_PROGMEM = "\x05" "Thimphu";

const complete::Info::ZoneInfo kZoneAsia_Thimphu ACE_TIME_PROGMEM = {
  kZoneNameAsia_Thimphu /*name*/,
  0x170380d1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Thimphu /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Tokyo
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Tokyo[] ACE_TIME_PROGMEM = {
  // 9:18:59 - LMT 1887 Dec 31 15:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2235 /*offsetCode (33539/15)*/,
    14 /*offsetRemainder (33539%15)*/,
    0 /*deltaMinutes*/,
    1887 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    3600 /*untilTimeCode (54000/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             9:00    Japan    J%sT
  {
    &kZonePolicyJapan /*zonePolicy*/,
    "J%T" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Tokyo[] ACE_TIME_PROGMEM = "\x05" "Tokyo";

const complete::Info::ZoneInfo kZoneAsia_Tokyo ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tokyo /*name*/,
  0x15e606a8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Tokyo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Tomsk
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Tomsk[] ACE_TIME_PROGMEM = {
  // 5:39:51 - LMT 1919 Dec 22
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1359 /*offsetCode (20391/15)*/,
    6 /*offsetRemainder (20391%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              7:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    Russia    %z    2002 May  1  3:00
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              6:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    -    %z    2016 May 29  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    5 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              7:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Tomsk[] ACE_TIME_PROGMEM = "\x05" "Tomsk";

const complete::Info::ZoneInfo kZoneAsia_Tomsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tomsk /*name*/,
  0x15e60e60 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Tomsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Ulaanbaatar
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = {
  // 7:07:32 - LMT 1905 Aug
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1710 /*offsetCode (25652/15)*/,
    2 /*offsetRemainder (25652%15)*/,
    0 /*deltaMinutes*/,
    1905 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             7:00    -    %z    1978
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    1978 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             8:00    Mongol    %z
  {
    &kZonePolicyMongol /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Ulaanbaatar[] ACE_TIME_PROGMEM = "\x05" "Ulaanbaatar";

const complete::Info::ZoneInfo kZoneAsia_Ulaanbaatar ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ulaanbaatar /*name*/,
  0x30f0cc4e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Ulaanbaatar /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Urumqi
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Urumqi[] ACE_TIME_PROGMEM = {
  // 5:50:20 - LMT 1928
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1401 /*offsetCode (21020/15)*/,
    5 /*offsetRemainder (21020%15)*/,
    0 /*deltaMinutes*/,
    1928 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Urumqi[] ACE_TIME_PROGMEM = "\x05" "Urumqi";

const complete::Info::ZoneInfo kZoneAsia_Urumqi ACE_TIME_PROGMEM = {
  kZoneNameAsia_Urumqi /*name*/,
  0xd5379735 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Urumqi /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Ust-Nera
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Ust_Nera[] ACE_TIME_PROGMEM = {
  // 9:32:54 - LMT 1919 Dec 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2291 /*offsetCode (34374/15)*/,
    9 /*offsetRemainder (34374%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    Russia    %z    1981 Apr  1
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             12:00    -    %z    2011 Sep 13  0:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    9 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Ust_Nera[] ACE_TIME_PROGMEM = "\x05" "Ust-Nera";

const complete::Info::ZoneInfo kZoneAsia_Ust_Nera ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ust_Nera /*name*/,
  0x4785f921 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Ust_Nera /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Vladivostok
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Vladivostok[] ACE_TIME_PROGMEM = {
  // 8:47:31 - LMT 1922 Nov 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2110 /*offsetCode (31651/15)*/,
    1 /*offsetRemainder (31651%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    11 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Vladivostok[] ACE_TIME_PROGMEM = "\x05" "Vladivostok";

const complete::Info::ZoneInfo kZoneAsia_Vladivostok ACE_TIME_PROGMEM = {
  kZoneNameAsia_Vladivostok /*name*/,
  0x29de34a8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Vladivostok /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Yakutsk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Yakutsk[] ACE_TIME_PROGMEM = {
  // 8:38:58 - LMT 1919 Dec 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2075 /*offsetCode (31138/15)*/,
    13 /*offsetRemainder (31138%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    12 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              8:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             10:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Yakutsk[] ACE_TIME_PROGMEM = "\x05" "Yakutsk";

const complete::Info::ZoneInfo kZoneAsia_Yakutsk ACE_TIME_PROGMEM = {
  kZoneNameAsia_Yakutsk /*name*/,
  0x87bb3a9e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Yakutsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Yangon
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Yangon[] ACE_TIME_PROGMEM = {
  // 6:24:47 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1539 /*offsetCode (23087/15)*/,
    2 /*offsetRemainder (23087%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:24:47    -    RMT    1920
  {
    nullptr /*zonePolicy*/,
    "RMT" /*format*/,
    1539 /*offsetCode (23087/15)*/,
    2 /*offsetRemainder (23087%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:30    -    %z    1942 May
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1560 /*offsetCode (23400/15)*/,
    0 /*offsetRemainder (23400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    %z    1945 May  3
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    5 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:30    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1560 /*offsetCode (23400/15)*/,
    0 /*offsetRemainder (23400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Yangon[] ACE_TIME_PROGMEM = "\x05" "Yangon";

const complete::Info::ZoneInfo kZoneAsia_Yangon ACE_TIME_PROGMEM = {
  kZoneNameAsia_Yangon /*name*/,
  0xdd54a8be /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Yangon /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Yekaterinburg
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Yekaterinburg[] ACE_TIME_PROGMEM = {
  // 4:02:33 - LMT 1916 Jul 3
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    970 /*offsetCode (14553/15)*/,
    3 /*offsetRemainder (14553%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:45:05 -    PMT    1919 Jul 15  4:00
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    900 /*offsetCode (13505/15)*/,
    5 /*offsetRemainder (13505%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    15 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              5:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              5:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              6:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Yekaterinburg[] ACE_TIME_PROGMEM = "\x05" "Yekaterinburg";

const complete::Info::ZoneInfo kZoneAsia_Yekaterinburg ACE_TIME_PROGMEM = {
  kZoneNameAsia_Yekaterinburg /*name*/,
  0xfb544c6e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Yekaterinburg /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Asia/Yerevan
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAsia_Yerevan[] ACE_TIME_PROGMEM = {
  // 2:58:00 - LMT 1924 May 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    712 /*offsetCode (10680/15)*/,
    0 /*offsetRemainder (10680%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z    1957 Mar
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 RussiaAsia %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             3:00 RussiaAsia    %z    1995 Sep 24  2:00s
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1995 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             4:00    -    %z    1997
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 RussiaAsia    %z    2011
  {
    &kZonePolicyRussiaAsia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00    Armenia    %z
  {
    &kZonePolicyArmenia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAsia_Yerevan[] ACE_TIME_PROGMEM = "\x05" "Yerevan";

const complete::Info::ZoneInfo kZoneAsia_Yerevan ACE_TIME_PROGMEM = {
  kZoneNameAsia_Yerevan /*name*/,
  0x9185c8cc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Yerevan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Azores
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Azores[] ACE_TIME_PROGMEM = {
  // -1:42:40 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -411 /*offsetCode (-6160/15)*/,
    5 /*offsetRemainder (-6160%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:54:32 -    HMT    1912 Jan  1  2:00u
  {
    nullptr /*zonePolicy*/,
    "HMT" /*format*/,
    -459 /*offsetCode (-6872/15)*/,
    13 /*offsetRemainder (-6872%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -2:00    Port    %z    1966 Oct  2  2:00s
  {
    &kZonePolicyPort /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    10 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             -1:00    -    %z    1982 Mar 28  0:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             -1:00    Port    %z    1986
  {
    &kZonePolicyPort /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:00    EU    %z    1992 Dec 27  1:00s
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    12 /*untilMonth*/,
    27 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    EU    WE%sT    1993 Jun 17  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    6 /*untilMonth*/,
    17 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -1:00    EU    %z
  {
    &kZonePolicyEU /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Azores[] ACE_TIME_PROGMEM = "\x06" "Azores";

const complete::Info::ZoneInfo kZoneAtlantic_Azores ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Azores /*name*/,
  0xf93ed918 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAtlantic_Azores /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Bermuda
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Bermuda[] ACE_TIME_PROGMEM = {
  // -4:19:18 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1038 /*offsetCode (-15558/15)*/,
    12 /*offsetRemainder (-15558%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:19:18 Bermuda BMT/BST 1930 Jan 1  2:00
  {
    &kZonePolicyBermuda /*zonePolicy*/,
    "BMT/BST" /*format*/,
    -1038 /*offsetCode (-15558/15)*/,
    12 /*offsetRemainder (-15558%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Bermuda    A%sT    1974 Apr 28  2:00
  {
    &kZonePolicyBermuda /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    4 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Canada    A%sT    1976
  {
    &kZonePolicyCanada /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    US    A%sT
  {
    &kZonePolicyUS /*zonePolicy*/,
    "A%T" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Bermuda[] ACE_TIME_PROGMEM = "\x06" "Bermuda";

const complete::Info::ZoneInfo kZoneAtlantic_Bermuda ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Bermuda /*name*/,
  0x3d4bb1c4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAtlantic_Bermuda /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Canary
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Canary[] ACE_TIME_PROGMEM = {
  // -1:01:36 - LMT 1922 Mar
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -247 /*offsetCode (-3696/15)*/,
    9 /*offsetRemainder (-3696%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:00    -    %z    1946 Sep 30  1:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    WET    1980 Apr  6  0:00s
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    4 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    1:00    WEST    1980 Sep 28  1:00u
  {
    nullptr /*zonePolicy*/,
    "WEST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    60 /*deltaMinutes*/,
    1980 /*untilYear*/,
    9 /*untilMonth*/,
    28 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    EU    WE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Canary[] ACE_TIME_PROGMEM = "\x06" "Canary";

const complete::Info::ZoneInfo kZoneAtlantic_Canary ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Canary /*name*/,
  0xfc23f2c2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAtlantic_Canary /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Cape_Verde
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = {
  // -1:34:04 - LMT 1912 Jan 01 2:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -377 /*offsetCode (-5644/15)*/,
    11 /*offsetRemainder (-5644%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -2:00    -    %z    1942 Sep
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    1:00    %z    1945 Oct 15
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    10 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z    1975 Nov 25  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    1975 /*untilYear*/,
    11 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Cape_Verde[] ACE_TIME_PROGMEM = "\x06" "Cape_Verde";

const complete::Info::ZoneInfo kZoneAtlantic_Cape_Verde ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Cape_Verde /*name*/,
  0x5c5e1772 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAtlantic_Cape_Verde /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Faroe
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Faroe[] ACE_TIME_PROGMEM = {
  // -0:27:04 - LMT 1908 Jan 11
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -109 /*offsetCode (-1624/15)*/,
    11 /*offsetRemainder (-1624%15)*/,
    0 /*deltaMinutes*/,
    1908 /*untilYear*/,
    1 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    -    WET    1981
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    EU    WE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Faroe[] ACE_TIME_PROGMEM = "\x06" "Faroe";

const complete::Info::ZoneInfo kZoneAtlantic_Faroe ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Faroe /*name*/,
  0xe110a971 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAtlantic_Faroe /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Madeira
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Madeira[] ACE_TIME_PROGMEM = {
  // -1:07:36 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -271 /*offsetCode (-4056/15)*/,
    9 /*offsetRemainder (-4056%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -1:07:36 -    FMT    1912 Jan  1  1:00u
  {
    nullptr /*zonePolicy*/,
    "FMT" /*format*/,
    -271 /*offsetCode (-4056/15)*/,
    9 /*offsetRemainder (-4056%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -1:00    Port    %z    1966 Oct  2  2:00s
  {
    &kZonePolicyPort /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    10 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    -    WET    1982 Apr  4
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    4 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Port    WE%sT    1986 Jul 31
  {
    &kZonePolicyPort /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    7 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    EU    WE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Madeira[] ACE_TIME_PROGMEM = "\x06" "Madeira";

const complete::Info::ZoneInfo kZoneAtlantic_Madeira ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Madeira /*name*/,
  0x81b5c037 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAtlantic_Madeira /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/South_Georgia
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_South_Georgia[] ACE_TIME_PROGMEM = {
  // -2:26:08 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -585 /*offsetCode (-8768/15)*/,
    7 /*offsetRemainder (-8768%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -2:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_South_Georgia[] ACE_TIME_PROGMEM = "\x06" "South_Georgia";

const complete::Info::ZoneInfo kZoneAtlantic_South_Georgia ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_South_Georgia /*name*/,
  0x33013174 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAtlantic_South_Georgia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Atlantic/Stanley
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAtlantic_Stanley[] ACE_TIME_PROGMEM = {
  // -3:51:24 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -926 /*offsetCode (-13884/15)*/,
    6 /*offsetRemainder (-13884%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:51:24 -    SMT    1912 Mar 12
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    -926 /*offsetCode (-13884/15)*/,
    6 /*offsetRemainder (-13884%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    3 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Falk    %z    1983 May
  {
    &kZonePolicyFalk /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    Falk    %z    1985 Sep 15
  {
    &kZonePolicyFalk /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    1985 /*untilYear*/,
    9 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -4:00    Falk    %z    2010 Sep  5  2:00
  {
    &kZonePolicyFalk /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    9 /*untilMonth*/,
    5 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAtlantic_Stanley[] ACE_TIME_PROGMEM = "\x06" "Stanley";

const complete::Info::ZoneInfo kZoneAtlantic_Stanley ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Stanley /*name*/,
  0x7bb3e1c4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAtlantic_Stanley /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Adelaide
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Adelaide[] ACE_TIME_PROGMEM = {
  // 9:14:20 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2217 /*offsetCode (33260/15)*/,
    5 /*offsetRemainder (33260%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    ACST    1899 May
  {
    nullptr /*zonePolicy*/,
    "ACST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    Aus    AC%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    AS    AC%sT
  {
    &kZonePolicyAS /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Adelaide[] ACE_TIME_PROGMEM = "\x07" "Adelaide";

const complete::Info::ZoneInfo kZoneAustralia_Adelaide ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Adelaide /*name*/,
  0x2428e8a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Adelaide /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Brisbane
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Brisbane[] ACE_TIME_PROGMEM = {
  // 10:12:08 - LMT 1895
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2448 /*offsetCode (36728/15)*/,
    8 /*offsetRemainder (36728%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AQ    AE%sT
  {
    &kZonePolicyAQ /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Brisbane[] ACE_TIME_PROGMEM = "\x07" "Brisbane";

const complete::Info::ZoneInfo kZoneAustralia_Brisbane ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Brisbane /*name*/,
  0x4fedc9c0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Brisbane /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Broken_Hill
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Broken_Hill[] ACE_TIME_PROGMEM = {
  // 9:25:48 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2263 /*offsetCode (33948/15)*/,
    3 /*offsetRemainder (33948%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    AEST    1896 Aug 23
  {
    nullptr /*zonePolicy*/,
    "AEST" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1896 /*untilYear*/,
    8 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:00    -    ACST    1899 May
  {
    nullptr /*zonePolicy*/,
    "ACST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    Aus    AC%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    AN    AC%sT    2000
  {
    &kZonePolicyAN /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:30    AS    AC%sT
  {
    &kZonePolicyAS /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Broken_Hill[] ACE_TIME_PROGMEM = "\x07" "Broken_Hill";

const complete::Info::ZoneInfo kZoneAustralia_Broken_Hill ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Broken_Hill /*name*/,
  0xb06eada3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAustralia_Broken_Hill /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Darwin
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Darwin[] ACE_TIME_PROGMEM = {
  // 8:43:20 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2093 /*offsetCode (31400/15)*/,
    5 /*offsetRemainder (31400%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    ACST    1899 May
  {
    nullptr /*zonePolicy*/,
    "ACST" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:30    Aus    AC%sT
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AC%T" /*format*/,
    2280 /*offsetCode (34200/15)*/,
    0 /*offsetRemainder (34200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Darwin[] ACE_TIME_PROGMEM = "\x07" "Darwin";

const complete::Info::ZoneInfo kZoneAustralia_Darwin ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Darwin /*name*/,
  0x2876bdff /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Darwin /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Eucla
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Eucla[] ACE_TIME_PROGMEM = {
  // 8:35:28 - LMT 1895 Dec
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2061 /*offsetCode (30928/15)*/,
    13 /*offsetRemainder (30928%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:45    Aus    %z    1943 Jul
  {
    &kZonePolicyAus /*zonePolicy*/,
    "" /*format*/,
    2100 /*offsetCode (31500/15)*/,
    0 /*offsetRemainder (31500%15)*/,
    0 /*deltaMinutes*/,
    1943 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:45    AW    %z
  {
    &kZonePolicyAW /*zonePolicy*/,
    "" /*format*/,
    2100 /*offsetCode (31500/15)*/,
    0 /*offsetRemainder (31500%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Eucla[] ACE_TIME_PROGMEM = "\x07" "Eucla";

const complete::Info::ZoneInfo kZoneAustralia_Eucla ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Eucla /*name*/,
  0x8cf99e44 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Eucla /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Hobart
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Hobart[] ACE_TIME_PROGMEM = {
  // 9:49:16 - LMT 1895 Sep
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2357 /*offsetCode (35356/15)*/,
    1 /*offsetRemainder (35356%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AT    AE%sT    1919 Oct 24
  {
    &kZonePolicyAT /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    10 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1967
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1967 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AT    AE%sT
  {
    &kZonePolicyAT /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Hobart[] ACE_TIME_PROGMEM = "\x07" "Hobart";

const complete::Info::ZoneInfo kZoneAustralia_Hobart ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Hobart /*name*/,
  0x32bf951a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Hobart /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Lindeman
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Lindeman[] ACE_TIME_PROGMEM = {
  // 9:55:56 - LMT 1895
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2383 /*offsetCode (35756/15)*/,
    11 /*offsetRemainder (35756%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AQ    AE%sT    1992 Jul
  {
    &kZonePolicyAQ /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Holiday    AE%sT
  {
    &kZonePolicyHoliday /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Lindeman[] ACE_TIME_PROGMEM = "\x07" "Lindeman";

const complete::Info::ZoneInfo kZoneAustralia_Lindeman ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Lindeman /*name*/,
  0xe05029e2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Lindeman /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Lord_Howe
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Lord_Howe[] ACE_TIME_PROGMEM = {
  // 10:36:20 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2545 /*offsetCode (38180/15)*/,
    5 /*offsetRemainder (38180%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    AEST    1981 Mar
  {
    nullptr /*zonePolicy*/,
    "AEST" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    3 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:30    LH    %z    1985 Jul
  {
    &kZonePolicyLH /*zonePolicy*/,
    "" /*format*/,
    2520 /*offsetCode (37800/15)*/,
    0 /*offsetRemainder (37800%15)*/,
    0 /*deltaMinutes*/,
    1985 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:30    LH    %z
  {
    &kZonePolicyLH /*zonePolicy*/,
    "" /*format*/,
    2520 /*offsetCode (37800/15)*/,
    0 /*offsetRemainder (37800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Lord_Howe[] ACE_TIME_PROGMEM = "\x07" "Lord_Howe";

const complete::Info::ZoneInfo kZoneAustralia_Lord_Howe ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Lord_Howe /*name*/,
  0xa748b67d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Lord_Howe /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Melbourne
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Melbourne[] ACE_TIME_PROGMEM = {
  // 9:39:52 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2319 /*offsetCode (34792/15)*/,
    7 /*offsetRemainder (34792%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AV    AE%sT
  {
    &kZonePolicyAV /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Melbourne[] ACE_TIME_PROGMEM = "\x07" "Melbourne";

const complete::Info::ZoneInfo kZoneAustralia_Melbourne ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Melbourne /*name*/,
  0x0fe559a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Melbourne /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Perth
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Perth[] ACE_TIME_PROGMEM = {
  // 7:43:24 - LMT 1895 Dec
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1853 /*offsetCode (27804/15)*/,
    9 /*offsetRemainder (27804%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    Aus    AW%sT    1943 Jul
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AW%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    1943 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              8:00    AW    AW%sT
  {
    &kZonePolicyAW /*zonePolicy*/,
    "AW%T" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Perth[] ACE_TIME_PROGMEM = "\x07" "Perth";

const complete::Info::ZoneInfo kZoneAustralia_Perth ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Perth /*name*/,
  0x8db8269d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Perth /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Australia/Sydney
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraAustralia_Sydney[] ACE_TIME_PROGMEM = {
  // 10:04:52 - LMT 1895 Feb
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2419 /*offsetCode (36292/15)*/,
    7 /*offsetRemainder (36292%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Aus    AE%sT    1971
  {
    &kZonePolicyAus /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    AN    AE%sT
  {
    &kZonePolicyAN /*zonePolicy*/,
    "AE%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameAustralia_Sydney[] ACE_TIME_PROGMEM = "\x07" "Sydney";

const complete::Info::ZoneInfo kZoneAustralia_Sydney ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Sydney /*name*/,
  0x4d1e9776 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Sydney /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT[] ACE_TIME_PROGMEM = {
  // 0 - GMT
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT[] ACE_TIME_PROGMEM = "\x0a" "GMT";

const complete::Info::ZoneInfo kZoneEtc_GMT ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT /*name*/,
  0xd8e2de58 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+1
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = {
  // -1 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -240 /*offsetCode (-3600/15)*/,
    0 /*offsetRemainder (-3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_1[] ACE_TIME_PROGMEM = "\x0a" "GMT+1";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_1 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_1 /*name*/,
  0x9d13da14 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_1 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+10
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = {
  // -10 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_10[] ACE_TIME_PROGMEM = "\x0a" "GMT+10";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_10 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_10 /*name*/,
  0x3f8f1cc4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_10 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+11
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = {
  // -11 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_11[] ACE_TIME_PROGMEM = "\x0a" "GMT+11";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_11 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_11 /*name*/,
  0x3f8f1cc5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_11 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+12
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = {
  // -12 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2880 /*offsetCode (-43200/15)*/,
    0 /*offsetRemainder (-43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_12[] ACE_TIME_PROGMEM = "\x0a" "GMT+12";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_12 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_12 /*name*/,
  0x3f8f1cc6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_12 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+2
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = {
  // -2 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -480 /*offsetCode (-7200/15)*/,
    0 /*offsetRemainder (-7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_2[] ACE_TIME_PROGMEM = "\x0a" "GMT+2";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_2 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_2 /*name*/,
  0x9d13da15 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_2 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+3
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = {
  // -3 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -720 /*offsetCode (-10800/15)*/,
    0 /*offsetRemainder (-10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_3[] ACE_TIME_PROGMEM = "\x0a" "GMT+3";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_3 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_3 /*name*/,
  0x9d13da16 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_3 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+4
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = {
  // -4 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -960 /*offsetCode (-14400/15)*/,
    0 /*offsetRemainder (-14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_4[] ACE_TIME_PROGMEM = "\x0a" "GMT+4";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_4 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_4 /*name*/,
  0x9d13da17 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_4 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+5
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = {
  // -5 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_5[] ACE_TIME_PROGMEM = "\x0a" "GMT+5";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_5 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_5 /*name*/,
  0x9d13da18 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_5 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+6
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = {
  // -6 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_6[] ACE_TIME_PROGMEM = "\x0a" "GMT+6";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_6 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_6 /*name*/,
  0x9d13da19 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_6 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+7
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = {
  // -7 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_7[] ACE_TIME_PROGMEM = "\x0a" "GMT+7";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_7 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_7 /*name*/,
  0x9d13da1a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_7 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+8
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = {
  // -8 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_8[] ACE_TIME_PROGMEM = "\x0a" "GMT+8";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_8 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_8 /*name*/,
  0x9d13da1b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_8 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT+9
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = {
  // -9 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_PLUS_9[] ACE_TIME_PROGMEM = "\x0a" "GMT+9";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_9 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_9 /*name*/,
  0x9d13da1c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_PLUS_9 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-1
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_1[] ACE_TIME_PROGMEM = {
  // 1 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_1[] ACE_TIME_PROGMEM = "\x0a" "GMT-1";

const complete::Info::ZoneInfo kZoneEtc_GMT_1 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_1 /*name*/,
  0x9d13da56 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_1 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-10
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_10[] ACE_TIME_PROGMEM = {
  // 10 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_10[] ACE_TIME_PROGMEM = "\x0a" "GMT-10";

const complete::Info::ZoneInfo kZoneEtc_GMT_10 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_10 /*name*/,
  0x3f8f2546 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_10 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-11
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_11[] ACE_TIME_PROGMEM = {
  // 11 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_11[] ACE_TIME_PROGMEM = "\x0a" "GMT-11";

const complete::Info::ZoneInfo kZoneEtc_GMT_11 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_11 /*name*/,
  0x3f8f2547 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_11 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-12
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_12[] ACE_TIME_PROGMEM = {
  // 12 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_12[] ACE_TIME_PROGMEM = "\x0a" "GMT-12";

const complete::Info::ZoneInfo kZoneEtc_GMT_12 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_12 /*name*/,
  0x3f8f2548 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_12 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-13
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_13[] ACE_TIME_PROGMEM = {
  // 13 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_13[] ACE_TIME_PROGMEM = "\x0a" "GMT-13";

const complete::Info::ZoneInfo kZoneEtc_GMT_13 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_13 /*name*/,
  0x3f8f2549 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_13 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-14
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_14[] ACE_TIME_PROGMEM = {
  // 14 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3360 /*offsetCode (50400/15)*/,
    0 /*offsetRemainder (50400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_14[] ACE_TIME_PROGMEM = "\x0a" "GMT-14";

const complete::Info::ZoneInfo kZoneEtc_GMT_14 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_14 /*name*/,
  0x3f8f254a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_14 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-2
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_2[] ACE_TIME_PROGMEM = {
  // 2 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_2[] ACE_TIME_PROGMEM = "\x0a" "GMT-2";

const complete::Info::ZoneInfo kZoneEtc_GMT_2 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_2 /*name*/,
  0x9d13da57 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_2 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-3
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_3[] ACE_TIME_PROGMEM = {
  // 3 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_3[] ACE_TIME_PROGMEM = "\x0a" "GMT-3";

const complete::Info::ZoneInfo kZoneEtc_GMT_3 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_3 /*name*/,
  0x9d13da58 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_3 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-4
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_4[] ACE_TIME_PROGMEM = {
  // 4 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_4[] ACE_TIME_PROGMEM = "\x0a" "GMT-4";

const complete::Info::ZoneInfo kZoneEtc_GMT_4 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_4 /*name*/,
  0x9d13da59 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_4 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-5
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_5[] ACE_TIME_PROGMEM = {
  // 5 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_5[] ACE_TIME_PROGMEM = "\x0a" "GMT-5";

const complete::Info::ZoneInfo kZoneEtc_GMT_5 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_5 /*name*/,
  0x9d13da5a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_5 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-6
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_6[] ACE_TIME_PROGMEM = {
  // 6 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_6[] ACE_TIME_PROGMEM = "\x0a" "GMT-6";

const complete::Info::ZoneInfo kZoneEtc_GMT_6 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_6 /*name*/,
  0x9d13da5b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_6 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-7
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_7[] ACE_TIME_PROGMEM = {
  // 7 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1680 /*offsetCode (25200/15)*/,
    0 /*offsetRemainder (25200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_7[] ACE_TIME_PROGMEM = "\x0a" "GMT-7";

const complete::Info::ZoneInfo kZoneEtc_GMT_7 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_7 /*name*/,
  0x9d13da5c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_7 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-8
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_8[] ACE_TIME_PROGMEM = {
  // 8 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1920 /*offsetCode (28800/15)*/,
    0 /*offsetRemainder (28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_8[] ACE_TIME_PROGMEM = "\x0a" "GMT-8";

const complete::Info::ZoneInfo kZoneEtc_GMT_8 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_8 /*name*/,
  0x9d13da5d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_8 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/GMT-9
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_GMT_9[] ACE_TIME_PROGMEM = {
  // 9 - %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_GMT_9[] ACE_TIME_PROGMEM = "\x0a" "GMT-9";

const complete::Info::ZoneInfo kZoneEtc_GMT_9 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_9 /*name*/,
  0x9d13da5e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT_9 /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Etc/UTC
// Eras: 1
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEtc_UTC[] ACE_TIME_PROGMEM = {
  // 0 - UTC
  {
    nullptr /*zonePolicy*/,
    "UTC" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEtc_UTC[] ACE_TIME_PROGMEM = "\x0a" "UTC";

const complete::Info::ZoneInfo kZoneEtc_UTC ACE_TIME_PROGMEM = {
  kZoneNameEtc_UTC /*name*/,
  0xd8e31abc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Andorra
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Andorra[] ACE_TIME_PROGMEM = {
  // 0:06:04 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    24 /*offsetCode (364/15)*/,
    4 /*offsetRemainder (364%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    -    WET    1946 Sep 30
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    9 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1985 Mar 31  2:00
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1985 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Andorra[] ACE_TIME_PROGMEM = "\x0b" "Andorra";

const complete::Info::ZoneInfo kZoneEurope_Andorra ACE_TIME_PROGMEM = {
  kZoneNameEurope_Andorra /*name*/,
  0x97f6764b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Andorra /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Astrakhan
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Astrakhan[] ACE_TIME_PROGMEM = {
  // 3:12:12 - LMT 1924 May
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    768 /*offsetCode (11532/15)*/,
    12 /*offsetRemainder (11532%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    1992 Mar 29  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    %z    2016 Mar 27  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Astrakhan[] ACE_TIME_PROGMEM = "\x0b" "Astrakhan";

const complete::Info::ZoneInfo kZoneEurope_Astrakhan ACE_TIME_PROGMEM = {
  kZoneNameEurope_Astrakhan /*name*/,
  0xe22256e1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Astrakhan /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Athens
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Athens[] ACE_TIME_PROGMEM = {
  // 1:34:52 - LMT 1895 Sep 14
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    379 /*offsetCode (5692/15)*/,
    7 /*offsetRemainder (5692%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    9 /*untilMonth*/,
    14 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:34:52    -    AMT    1916 Jul 28  0:01
  {
    nullptr /*zonePolicy*/,
    "AMT" /*format*/,
    379 /*offsetCode (5692/15)*/,
    7 /*offsetRemainder (5692%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    28 /*untilDay*/,
    4 /*untilTimeCode (60/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Greece    EE%sT    1941 Apr 30
  {
    &kZonePolicyGreece /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    4 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Greece    CE%sT    1944 Apr  4
  {
    &kZonePolicyGreece /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    4 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Greece    EE%sT    1981
  {
    &kZonePolicyGreece /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Athens[] ACE_TIME_PROGMEM = "\x0b" "Athens";

const complete::Info::ZoneInfo kZoneEurope_Athens ACE_TIME_PROGMEM = {
  kZoneNameEurope_Athens /*name*/,
  0x4318fa27 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Athens /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Belgrade
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Belgrade[] ACE_TIME_PROGMEM = {
  // 1:22:00 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    328 /*offsetCode (4920/15)*/,
    0 /*offsetRemainder (4920%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1941 Apr 18 23:00
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    4 /*untilMonth*/,
    18 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1945 May  8  2:00s
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    5 /*untilMonth*/,
    8 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    1:00    CEST    1945 Sep 16  2:00s
  {
    nullptr /*zonePolicy*/,
    "CEST" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    16 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    -    CET    1982 Nov 27
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    11 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Belgrade[] ACE_TIME_PROGMEM = "\x0b" "Belgrade";

const complete::Info::ZoneInfo kZoneEurope_Belgrade ACE_TIME_PROGMEM = {
  kZoneNameEurope_Belgrade /*name*/,
  0xe0532b3a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Berlin
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Berlin[] ACE_TIME_PROGMEM = {
  // 0:53:28 - LMT 1893 Apr
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    213 /*offsetCode (3208/15)*/,
    13 /*offsetRemainder (3208%15)*/,
    0 /*deltaMinutes*/,
    1893 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945 May 24  2:00
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    5 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00 SovietZone    CE%sT    1946
  {
    &kZonePolicySovietZone /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Germany    CE%sT    1980
  {
    &kZonePolicyGermany /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Berlin[] ACE_TIME_PROGMEM = "\x0b" "Berlin";

const complete::Info::ZoneInfo kZoneEurope_Berlin ACE_TIME_PROGMEM = {
  kZoneNameEurope_Berlin /*name*/,
  0x44644c20 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Brussels
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Brussels[] ACE_TIME_PROGMEM = {
  // 0:17:30 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    70 /*offsetCode (1050/15)*/,
    0 /*offsetRemainder (1050%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:17:30    -    BMT    1892 May  1 00:17:30
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    70 /*offsetCode (1050/15)*/,
    0 /*offsetRemainder (1050%15)*/,
    0 /*deltaMinutes*/,
    1892 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    70 /*untilTimeCode (1050/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    -    WET    1914 Nov  8
  {
    nullptr /*zonePolicy*/,
    "WET" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    11 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1916 May  1  0:00
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1918 Nov 11 11:00u
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    11 /*untilMonth*/,
    11 /*untilDay*/,
    2640 /*untilTimeCode (39600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             0:00    Belgium    WE%sT    1940 May 20  2:00s
  {
    &kZonePolicyBelgium /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    5 /*untilMonth*/,
    20 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Sep  3
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    9 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Belgium    CE%sT    1977
  {
    &kZonePolicyBelgium /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Brussels[] ACE_TIME_PROGMEM = "\x0b" "Brussels";

const complete::Info::ZoneInfo kZoneEurope_Brussels ACE_TIME_PROGMEM = {
  kZoneNameEurope_Brussels /*name*/,
  0xdee07337 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Brussels /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Bucharest
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Bucharest[] ACE_TIME_PROGMEM = {
  // 1:44:24 - LMT 1891 Oct
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    417 /*offsetCode (6264/15)*/,
    9 /*offsetRemainder (6264%15)*/,
    0 /*deltaMinutes*/,
    1891 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:44:24    -    BMT    1931 Jul 24
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    417 /*offsetCode (6264/15)*/,
    9 /*offsetRemainder (6264%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    7 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Romania    EE%sT    1981 Mar 29  2:00s
  {
    &kZonePolicyRomania /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    C-Eur    EE%sT    1991
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Romania    EE%sT    1994
  {
    &kZonePolicyRomania /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    E-Eur    EE%sT    1997
  {
    &kZonePolicyE_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Bucharest[] ACE_TIME_PROGMEM = "\x0b" "Bucharest";

const complete::Info::ZoneInfo kZoneEurope_Bucharest ACE_TIME_PROGMEM = {
  kZoneNameEurope_Bucharest /*name*/,
  0xfb349ec5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Bucharest /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Budapest
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Budapest[] ACE_TIME_PROGMEM = {
  // 1:16:20 - LMT 1890 Nov 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    305 /*offsetCode (4580/15)*/,
    5 /*offsetRemainder (4580%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1918
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Hungary    CE%sT    1941 Apr  7 23:00
  {
    &kZonePolicyHungary /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    4 /*untilMonth*/,
    7 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Hungary    CE%sT    1984
  {
    &kZonePolicyHungary /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Budapest[] ACE_TIME_PROGMEM = "\x0b" "Budapest";

const complete::Info::ZoneInfo kZoneEurope_Budapest ACE_TIME_PROGMEM = {
  kZoneNameEurope_Budapest /*name*/,
  0x9ce0197c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Budapest /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Chisinau
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Chisinau[] ACE_TIME_PROGMEM = {
  // 1:55:20 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    461 /*offsetCode (6920/15)*/,
    5 /*offsetRemainder (6920%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:55    -    CMT    1918 Feb 15
  {
    nullptr /*zonePolicy*/,
    "CMT" /*format*/,
    460 /*offsetCode (6900/15)*/,
    0 /*offsetRemainder (6900%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    2 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:44:24    -    BMT    1931 Jul 24
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    417 /*offsetCode (6264/15)*/,
    9 /*offsetRemainder (6264%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    7 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Romania    EE%sT    1940 Aug 15
  {
    &kZonePolicyRomania /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    8 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    1:00    EEST    1941 Jul 17
  {
    nullptr /*zonePolicy*/,
    "EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    1941 /*untilYear*/,
    7 /*untilMonth*/,
    17 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Aug 24
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    8 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1990 May  6  2:00
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    5 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Russia    EE%sT    1992
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    E-Eur    EE%sT    1997
  {
    &kZonePolicyE_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Moldova    EE%sT
  {
    &kZonePolicyMoldova /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Chisinau[] ACE_TIME_PROGMEM = "\x0b" "Chisinau";

const complete::Info::ZoneInfo kZoneEurope_Chisinau ACE_TIME_PROGMEM = {
  kZoneNameEurope_Chisinau /*name*/,
  0xad58aa18 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraEurope_Chisinau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Dublin
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Dublin[] ACE_TIME_PROGMEM = {
  // -0:25:21 - LMT 1880 Aug 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -102 /*offsetCode (-1521/15)*/,
    9 /*offsetRemainder (-1521%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    8 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -0:25:21 -    DMT    1916 May 21  2:00s
  {
    nullptr /*zonePolicy*/,
    "DMT" /*format*/,
    -102 /*offsetCode (-1521/15)*/,
    9 /*offsetRemainder (-1521%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    5 /*untilMonth*/,
    21 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             -0:25:21 1:00    IST    1916 Oct  1  2:00s
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    -102 /*offsetCode (-1521/15)*/,
    9 /*offsetRemainder (-1521%15)*/,
    60 /*deltaMinutes*/,
    1916 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    GB-Eire    %s    1921 Dec  6
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "%" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    12 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    GB-Eire    GMT/IST    1940 Feb 25  2:00s
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "GMT/IST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    2 /*untilMonth*/,
    25 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    1:00    IST    1946 Oct  6  2:00s
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    60 /*deltaMinutes*/,
    1946 /*untilYear*/,
    10 /*untilMonth*/,
    6 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    -    GMT    1947 Mar 16  2:00s
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    1:00    IST    1947 Nov  2  2:00s
  {
    nullptr /*zonePolicy*/,
    "IST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    60 /*deltaMinutes*/,
    1947 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    -    GMT    1948 Apr 18  2:00s
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1948 /*untilYear*/,
    4 /*untilMonth*/,
    18 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              0:00    GB-Eire    GMT/IST    1968 Oct 27
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "GMT/IST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    Eire    IST/GMT
  {
    &kZonePolicyEire /*zonePolicy*/,
    "IST/GMT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Dublin[] ACE_TIME_PROGMEM = "\x0b" "Dublin";

const complete::Info::ZoneInfo kZoneEurope_Dublin ACE_TIME_PROGMEM = {
  kZoneNameEurope_Dublin /*name*/,
  0x4a275f62 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraEurope_Dublin /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Gibraltar
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Gibraltar[] ACE_TIME_PROGMEM = {
  // -0:21:24 - LMT 1880 Aug 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -86 /*offsetCode (-1284/15)*/,
    6 /*offsetRemainder (-1284%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    8 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    GB-Eire    %s    1957 Apr 14  2:00
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "%" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1957 /*untilYear*/,
    4 /*untilMonth*/,
    14 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1982
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Gibraltar[] ACE_TIME_PROGMEM = "\x0b" "Gibraltar";

const complete::Info::ZoneInfo kZoneEurope_Gibraltar ACE_TIME_PROGMEM = {
  kZoneNameEurope_Gibraltar /*name*/,
  0xf8e325fc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Gibraltar /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Helsinki
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Helsinki[] ACE_TIME_PROGMEM = {
  // 1:39:49 - LMT 1878 May 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    399 /*offsetCode (5989/15)*/,
    4 /*offsetRemainder (5989%15)*/,
    0 /*deltaMinutes*/,
    1878 /*untilYear*/,
    5 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:39:49    -    HMT    1921 May
  {
    nullptr /*zonePolicy*/,
    "HMT" /*format*/,
    399 /*offsetCode (5989/15)*/,
    4 /*offsetRemainder (5989%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Finland    EE%sT    1983
  {
    &kZonePolicyFinland /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1983 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Helsinki[] ACE_TIME_PROGMEM = "\x0b" "Helsinki";

const complete::Info::ZoneInfo kZoneEurope_Helsinki ACE_TIME_PROGMEM = {
  kZoneNameEurope_Helsinki /*name*/,
  0x6ab2975b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Helsinki /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Istanbul
// Eras: 13
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Istanbul[] ACE_TIME_PROGMEM = {
  // 1:55:52 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    463 /*offsetCode (6952/15)*/,
    7 /*offsetRemainder (6952%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:56:56    -    IMT    1910 Oct
  {
    nullptr /*zonePolicy*/,
    "IMT" /*format*/,
    467 /*offsetCode (7016/15)*/,
    11 /*offsetRemainder (7016%15)*/,
    0 /*deltaMinutes*/,
    1910 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Turkey    EE%sT    1978 Jun 29
  {
    &kZonePolicyTurkey /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1978 /*untilYear*/,
    6 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Turkey    %z    1984 Nov  1  2:00
  {
    &kZonePolicyTurkey /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Turkey    EE%sT    2007
  {
    &kZonePolicyTurkey /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2007 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    2011 Mar 27  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    -    EET    2011 Mar 28  1:00u
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    2014 Mar 30  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    -    EET    2014 Mar 31  1:00u
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    2015 Oct 25  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    10 /*untilMonth*/,
    25 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    1:00    EEST    2015 Nov  8  1:00u
  {
    nullptr /*zonePolicy*/,
    "EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    2015 /*untilYear*/,
    11 /*untilMonth*/,
    8 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    2016 Sep  7
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    9 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Istanbul[] ACE_TIME_PROGMEM = "\x0b" "Istanbul";

const complete::Info::ZoneInfo kZoneEurope_Istanbul ACE_TIME_PROGMEM = {
  kZoneNameEurope_Istanbul /*name*/,
  0x9e09d6e6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraEurope_Istanbul /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Kaliningrad
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Kaliningrad[] ACE_TIME_PROGMEM = {
  // 1:22:00 - LMT 1893 Apr
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    328 /*offsetCode (4920/15)*/,
    0 /*offsetRemainder (4920%15)*/,
    0 /*deltaMinutes*/,
    1893 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    C-Eur    CE%sT    1945 Apr 10
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    4 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:00    Poland    EE%sT    1946 Apr  7
  {
    &kZonePolicyPoland /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    4 /*untilMonth*/,
    7 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              2:00    Russia    EE%sT    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              2:00    -    EET
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Kaliningrad[] ACE_TIME_PROGMEM = "\x0b" "Kaliningrad";

const complete::Info::ZoneInfo kZoneEurope_Kaliningrad ACE_TIME_PROGMEM = {
  kZoneNameEurope_Kaliningrad /*name*/,
  0xd33b2f28 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Kaliningrad /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Kirov
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Kirov[] ACE_TIME_PROGMEM = {
  // 3:18:48 - LMT 1919 Jul 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    795 /*offsetCode (11928/15)*/,
    3 /*offsetRemainder (11928%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    1992 Mar 29  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    MSK    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Kirov[] ACE_TIME_PROGMEM = "\x0b" "Kirov";

const complete::Info::ZoneInfo kZoneEurope_Kirov ACE_TIME_PROGMEM = {
  kZoneNameEurope_Kirov /*name*/,
  0xfaf5abef /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraEurope_Kirov /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Kyiv
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Kyiv[] ACE_TIME_PROGMEM = {
  // 2:02:04 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    488 /*offsetCode (7324/15)*/,
    4 /*offsetRemainder (7324%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:02:04    -    KMT    1924 May  2
  {
    nullptr /*zonePolicy*/,
    "KMT" /*format*/,
    488 /*offsetCode (7324/15)*/,
    4 /*offsetRemainder (7324%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1941 Sep 20
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    9 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1943 Nov  6
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1943 /*untilYear*/,
    11 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1990 Jul  1  2:00
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    1:00    EEST    1991 Sep 29  3:00
  {
    nullptr /*zonePolicy*/,
    "EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    1991 /*untilYear*/,
    9 /*untilMonth*/,
    29 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    C-Eur    EE%sT    1996 May 13
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    5 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Kyiv[] ACE_TIME_PROGMEM = "\x0b" "Kyiv";

const complete::Info::ZoneInfo kZoneEurope_Kyiv ACE_TIME_PROGMEM = {
  kZoneNameEurope_Kyiv /*name*/,
  0xa2c1e347 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Kyiv /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Lisbon
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Lisbon[] ACE_TIME_PROGMEM = {
  // -0:36:45 - LMT 1884
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -147 /*offsetCode (-2205/15)*/,
    0 /*offsetRemainder (-2205%15)*/,
    0 /*deltaMinutes*/,
    1884 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -0:36:45 -    LMT    1912 Jan  1  0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -147 /*offsetCode (-2205/15)*/,
    0 /*offsetRemainder (-2205%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    Port    WE%sT    1966 Oct  2  2:00s
  {
    &kZonePolicyPort /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1966 /*untilYear*/,
    10 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              1:00    -    CET    1976 Sep 26  1:00
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1976 /*untilYear*/,
    9 /*untilMonth*/,
    26 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    Port    WE%sT    1986
  {
    &kZonePolicyPort /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    EU    WE%sT    1992 Sep 27  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    9 /*untilMonth*/,
    27 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              1:00    EU    CE%sT    1996 Mar 31  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    EU    WE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Lisbon[] ACE_TIME_PROGMEM = "\x0b" "Lisbon";

const complete::Info::ZoneInfo kZoneEurope_Lisbon ACE_TIME_PROGMEM = {
  kZoneNameEurope_Lisbon /*name*/,
  0x5c00a70b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraEurope_Lisbon /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/London
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_London[] ACE_TIME_PROGMEM = {
  // -0:01:15 - LMT 1847 Dec 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -5 /*offsetCode (-75/15)*/,
    0 /*offsetRemainder (-75%15)*/,
    0 /*deltaMinutes*/,
    1847 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    GB-Eire    %s    1968 Oct 27
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "%" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1968 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    -    BST    1971 Oct 31  2:00u
  {
    nullptr /*zonePolicy*/,
    "BST" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1971 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    GB-Eire    %s    1996
  {
    &kZonePolicyGB_Eire /*zonePolicy*/,
    "%" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              0:00    EU    GMT/BST
  {
    &kZonePolicyEU /*zonePolicy*/,
    "GMT/BST" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_London[] ACE_TIME_PROGMEM = "\x0b" "London";

const complete::Info::ZoneInfo kZoneEurope_London ACE_TIME_PROGMEM = {
  kZoneNameEurope_London /*name*/,
  0x5c6a84ae /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Madrid
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Madrid[] ACE_TIME_PROGMEM = {
  // -0:14:44 - LMT 1901 Jan 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -59 /*offsetCode (-884/15)*/,
    1 /*offsetRemainder (-884%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              0:00    Spain    WE%sT    1940 Mar 16 23:00
  {
    &kZonePolicySpain /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    Spain    CE%sT    1979
  {
    &kZonePolicySpain /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Madrid[] ACE_TIME_PROGMEM = "\x0b" "Madrid";

const complete::Info::ZoneInfo kZoneEurope_Madrid ACE_TIME_PROGMEM = {
  kZoneNameEurope_Madrid /*name*/,
  0x5dbd1535 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Madrid /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Malta
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Malta[] ACE_TIME_PROGMEM = {
  // 0:58:04 - LMT 1893 Nov 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    232 /*offsetCode (3484/15)*/,
    4 /*offsetRemainder (3484%15)*/,
    0 /*deltaMinutes*/,
    1893 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Italy    CE%sT    1973 Mar 31
  {
    &kZonePolicyItaly /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1973 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Malta    CE%sT    1981
  {
    &kZonePolicyMalta /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Malta[] ACE_TIME_PROGMEM = "\x0b" "Malta";

const complete::Info::ZoneInfo kZoneEurope_Malta ACE_TIME_PROGMEM = {
  kZoneNameEurope_Malta /*name*/,
  0xfb1560f3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Malta /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Minsk
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Minsk[] ACE_TIME_PROGMEM = {
  // 1:50:16 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    441 /*offsetCode (6616/15)*/,
    1 /*offsetRemainder (6616%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:50    -    MMT    1924 May  2
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    440 /*offsetCode (6600/15)*/,
    0 /*offsetRemainder (6600%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1941 Jun 28
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    6 /*untilMonth*/,
    28 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Jul  3
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    7 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1990
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1991 Mar 31  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    Russia    EE%sT    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             3:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Minsk[] ACE_TIME_PROGMEM = "\x0b" "Minsk";

const complete::Info::ZoneInfo kZoneEurope_Minsk ACE_TIME_PROGMEM = {
  kZoneNameEurope_Minsk /*name*/,
  0xfb19cc66 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Minsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Moscow
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Moscow[] ACE_TIME_PROGMEM = {
  // 2:30:17 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    601 /*offsetCode (9017/15)*/,
    2 /*offsetRemainder (9017%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:30:17 -    MMT    1916 Jul  3
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    601 /*offsetCode (9017/15)*/,
    2 /*offsetRemainder (9017%15)*/,
    0 /*deltaMinutes*/,
    1916 /*untilYear*/,
    7 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:31:19 Russia    %s    1919 Jul  1  0:00u
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "%" /*format*/,
    605 /*offsetCode (9079/15)*/,
    4 /*offsetRemainder (9079%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              3:00    Russia    %s    1921 Oct
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "%" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1922 Oct
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:00    -    EET    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              2:00    Russia    EE%sT    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    MSK    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Moscow[] ACE_TIME_PROGMEM = "\x0b" "Moscow";

const complete::Info::ZoneInfo kZoneEurope_Moscow ACE_TIME_PROGMEM = {
  kZoneNameEurope_Moscow /*name*/,
  0x5ec266fc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraEurope_Moscow /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Paris
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Paris[] ACE_TIME_PROGMEM = {
  // 0:09:21 - LMT 1891 Mar 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    37 /*offsetCode (561/15)*/,
    6 /*offsetRemainder (561%15)*/,
    0 /*deltaMinutes*/,
    1891 /*untilYear*/,
    3 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:09:21    -    PMT    1911 Mar 11
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    37 /*offsetCode (561/15)*/,
    6 /*offsetRemainder (561%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    3 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    France    WE%sT    1940 Jun 14 23:00
  {
    &kZonePolicyFrance /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    6 /*untilMonth*/,
    14 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Aug 25
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    8 /*untilMonth*/,
    25 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:00    France    WE%sT    1945 Sep 16  3:00
  {
    &kZonePolicyFrance /*zonePolicy*/,
    "WE%T" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    16 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    France    CE%sT    1977
  {
    &kZonePolicyFrance /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Paris[] ACE_TIME_PROGMEM = "\x0b" "Paris";

const complete::Info::ZoneInfo kZoneEurope_Paris ACE_TIME_PROGMEM = {
  kZoneNameEurope_Paris /*name*/,
  0xfb4bc2a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Paris /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Prague
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Prague[] ACE_TIME_PROGMEM = {
  // 0:57:44 - LMT 1850
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    230 /*offsetCode (3464/15)*/,
    14 /*offsetRemainder (3464%15)*/,
    0 /*deltaMinutes*/,
    1850 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:57:44    -    PMT    1891 Oct
  {
    nullptr /*zonePolicy*/,
    "PMT" /*format*/,
    230 /*offsetCode (3464/15)*/,
    14 /*offsetRemainder (3464%15)*/,
    0 /*deltaMinutes*/,
    1891 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945 May  9
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    5 /*untilMonth*/,
    9 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Czech    CE%sT    1946 Dec  1  3:00
  {
    &kZonePolicyCzech /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    12 /*untilMonth*/,
    1 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -1:00    GMT    1947 Feb 23  2:00
  {
    nullptr /*zonePolicy*/,
    "GMT" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    -60 /*deltaMinutes*/,
    1947 /*untilYear*/,
    2 /*untilMonth*/,
    23 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Czech    CE%sT    1979
  {
    &kZonePolicyCzech /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Prague[] ACE_TIME_PROGMEM = "\x0b" "Prague";

const complete::Info::ZoneInfo kZoneEurope_Prague ACE_TIME_PROGMEM = {
  kZoneNameEurope_Prague /*name*/,
  0x65ee5d48 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Prague /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Riga
// Eras: 15
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Riga[] ACE_TIME_PROGMEM = {
  // 1:36:34 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:36:34    -    RMT    1918 Apr 15  2:00
  {
    nullptr /*zonePolicy*/,
    "RMT" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    4 /*untilMonth*/,
    15 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:36:34    1:00    LST    1918 Sep 16  3:00
  {
    nullptr /*zonePolicy*/,
    "LST" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    60 /*deltaMinutes*/,
    1918 /*untilYear*/,
    9 /*untilMonth*/,
    16 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:36:34    -    RMT    1919 Apr  1  2:00
  {
    nullptr /*zonePolicy*/,
    "RMT" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:36:34    1:00    LST    1919 May 22  3:00
  {
    nullptr /*zonePolicy*/,
    "LST" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    60 /*deltaMinutes*/,
    1919 /*untilYear*/,
    5 /*untilMonth*/,
    22 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:36:34    -    RMT    1926 May 11
  {
    nullptr /*zonePolicy*/,
    "RMT" /*format*/,
    386 /*offsetCode (5794/15)*/,
    4 /*offsetRemainder (5794%15)*/,
    0 /*deltaMinutes*/,
    1926 /*untilYear*/,
    5 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1940 Aug  5
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    8 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1941 Jul
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Oct 13
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    10 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1989 Mar lastSun  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    1:00    EEST    1989 Sep lastSun  2:00s
  {
    nullptr /*zonePolicy*/,
    "EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    1989 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    Latvia    EE%sT    1997 Jan 21
  {
    &kZonePolicyLatvia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    2000 Feb 29
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    2 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2001 Jan  2
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2001 /*untilYear*/,
    1 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Riga[] ACE_TIME_PROGMEM = "\x0b" "Riga";

const complete::Info::ZoneInfo kZoneEurope_Riga ACE_TIME_PROGMEM = {
  kZoneNameEurope_Riga /*name*/,
  0xa2c57587 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  15 /*numEras*/,
  kZoneEraEurope_Riga /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Rome
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Rome[] ACE_TIME_PROGMEM = {
  // 0:49:56 - LMT 1866 Dec 12
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    199 /*offsetCode (2996/15)*/,
    11 /*offsetRemainder (2996%15)*/,
    0 /*deltaMinutes*/,
    1866 /*untilYear*/,
    12 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:49:56    -    RMT    1893 Oct 31 23:00u
  {
    nullptr /*zonePolicy*/,
    "RMT" /*format*/,
    199 /*offsetCode (2996/15)*/,
    11 /*offsetRemainder (2996%15)*/,
    0 /*deltaMinutes*/,
    1893 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             1:00    Italy    CE%sT    1943 Sep 10
  {
    &kZonePolicyItaly /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1943 /*untilYear*/,
    9 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Jun  4
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    6 /*untilMonth*/,
    4 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Italy    CE%sT    1980
  {
    &kZonePolicyItaly /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1980 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Rome[] ACE_TIME_PROGMEM = "\x0b" "Rome";

const complete::Info::ZoneInfo kZoneEurope_Rome ACE_TIME_PROGMEM = {
  kZoneNameEurope_Rome /*name*/,
  0xa2c58fd7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Rome /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Samara
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Samara[] ACE_TIME_PROGMEM = {
  // 3:20:20 - LMT 1919 Jul 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    801 /*offsetCode (12020/15)*/,
    5 /*offsetRemainder (12020%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    -    %z    1935 Jan 27
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1935 /*untilYear*/,
    1 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              2:00    Russia    %z    1991 Sep 29  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    9 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    %z    1991 Oct 20  3:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    10 /*untilMonth*/,
    20 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    2010 Mar 28  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2010 /*untilYear*/,
    3 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Samara[] ACE_TIME_PROGMEM = "\x0b" "Samara";

const complete::Info::ZoneInfo kZoneEurope_Samara ACE_TIME_PROGMEM = {
  kZoneNameEurope_Samara /*name*/,
  0x6bc0b139 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraEurope_Samara /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Saratov
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Saratov[] ACE_TIME_PROGMEM = {
  // 3:04:18 - LMT 1919 Jul 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    737 /*offsetCode (11058/15)*/,
    3 /*offsetRemainder (11058%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1988 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    1992 Mar 29  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    %z    2016 Dec  4  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    12 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Saratov[] ACE_TIME_PROGMEM = "\x0b" "Saratov";

const complete::Info::ZoneInfo kZoneEurope_Saratov ACE_TIME_PROGMEM = {
  kZoneNameEurope_Saratov /*name*/,
  0xe4315da4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Saratov /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Simferopol
// Eras: 15
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Simferopol[] ACE_TIME_PROGMEM = {
  // 2:16:24 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    545 /*offsetCode (8184/15)*/,
    9 /*offsetRemainder (8184%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:16    -    SMT    1924 May  2
  {
    nullptr /*zonePolicy*/,
    "SMT" /*format*/,
    544 /*offsetCode (8160/15)*/,
    0 /*offsetRemainder (8160%15)*/,
    0 /*deltaMinutes*/,
    1924 /*untilYear*/,
    5 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:00    -    EET    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    -    MSK    1941 Nov
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    11 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              1:00    C-Eur    CE%sT    1944 Apr 13
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    4 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1990
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    -    MSK    1990 Jul  1  2:00
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1990 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:00    -    EET    1992 Mar 20
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    20 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              2:00    C-Eur    EE%sT    1994 May
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    C-Eur    MSK/MSD    1996 Mar 31  0:00s
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    1:00    MSD    1996 Oct 27  3:00s
  {
    nullptr /*zonePolicy*/,
    "MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    60 /*deltaMinutes*/,
    1996 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK    1997 Mar lastSun  1:00u
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              2:00    EU    EE%sT    2014 Mar 30  2:00
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    3 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    -    MSK    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Simferopol[] ACE_TIME_PROGMEM = "\x0b" "Simferopol";

const complete::Info::ZoneInfo kZoneEurope_Simferopol ACE_TIME_PROGMEM = {
  kZoneNameEurope_Simferopol /*name*/,
  0xda9eb724 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  15 /*numEras*/,
  kZoneEraEurope_Simferopol /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Sofia
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Sofia[] ACE_TIME_PROGMEM = {
  // 1:33:16 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    373 /*offsetCode (5596/15)*/,
    1 /*offsetRemainder (5596%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:56:56    -    IMT    1894 Nov 30
  {
    nullptr /*zonePolicy*/,
    "IMT" /*format*/,
    467 /*offsetCode (7016/15)*/,
    11 /*offsetRemainder (7016%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    11 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1942 Nov  2  3:00
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1945 Apr  2  3:00
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1979 Mar 31 23:00
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    5520 /*untilTimeCode (82800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Bulg    EE%sT    1982 Sep 26  3:00
  {
    &kZonePolicyBulg /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    9 /*untilMonth*/,
    26 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    C-Eur    EE%sT    1991
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    E-Eur    EE%sT    1997
  {
    &kZonePolicyE_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1997 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Sofia[] ACE_TIME_PROGMEM = "\x0b" "Sofia";

const complete::Info::ZoneInfo kZoneEurope_Sofia ACE_TIME_PROGMEM = {
  kZoneNameEurope_Sofia /*name*/,
  0xfb898656 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraEurope_Sofia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Tallinn
// Eras: 13
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Tallinn[] ACE_TIME_PROGMEM = {
  // 1:39:00 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    396 /*offsetCode (5940/15)*/,
    0 /*offsetRemainder (5940%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:39:00    -    TMT    1918 Feb
  {
    nullptr /*zonePolicy*/,
    "TMT" /*format*/,
    396 /*offsetCode (5940/15)*/,
    0 /*offsetRemainder (5940%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1919 Jul
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:39:00    -    TMT    1921 May
  {
    nullptr /*zonePolicy*/,
    "TMT" /*format*/,
    396 /*offsetCode (5940/15)*/,
    0 /*offsetRemainder (5940%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    5 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1940 Aug  6
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    8 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1941 Sep 15
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    9 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Sep 22
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    9 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    1:00    EEST    1989 Sep 24  2:00s
  {
    nullptr /*zonePolicy*/,
    "EEST" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    60 /*deltaMinutes*/,
    1989 /*untilYear*/,
    9 /*untilMonth*/,
    24 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    C-Eur    EE%sT    1998 Sep 22
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    9 /*untilMonth*/,
    22 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT    1999 Oct 31  4:00
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    960 /*untilTimeCode (14400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    2002 Feb 21
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2002 /*untilYear*/,
    2 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Tallinn[] ACE_TIME_PROGMEM = "\x0b" "Tallinn";

const complete::Info::ZoneInfo kZoneEurope_Tallinn ACE_TIME_PROGMEM = {
  kZoneNameEurope_Tallinn /*name*/,
  0x30c4e096 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraEurope_Tallinn /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Tirane
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Tirane[] ACE_TIME_PROGMEM = {
  // 1:19:20 - LMT 1914
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    317 /*offsetCode (4760/15)*/,
    5 /*offsetRemainder (4760%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1940 Jun 16
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    6 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Albania    CE%sT    1984 Jul
  {
    &kZonePolicyAlbania /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1984 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Tirane[] ACE_TIME_PROGMEM = "\x0b" "Tirane";

const complete::Info::ZoneInfo kZoneEurope_Tirane ACE_TIME_PROGMEM = {
  kZoneNameEurope_Tirane /*name*/,
  0x6ea95b47 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Tirane /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Ulyanovsk
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Ulyanovsk[] ACE_TIME_PROGMEM = {
  // 3:13:36 - LMT 1919 Jul 1 0:00u
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    774 /*offsetCode (11616/15)*/,
    6 /*offsetRemainder (11616%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              2:00    Russia    %z    1992 Jan 19  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    1 /*untilMonth*/,
    19 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    %z    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    %z    2016 Mar 27  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2016 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Ulyanovsk[] ACE_TIME_PROGMEM = "\x0b" "Ulyanovsk";

const complete::Info::ZoneInfo kZoneEurope_Ulyanovsk ACE_TIME_PROGMEM = {
  kZoneNameEurope_Ulyanovsk /*name*/,
  0xe03783d0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Ulyanovsk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Vienna
// Eras: 8
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Vienna[] ACE_TIME_PROGMEM = {
  // 1:05:21 - LMT 1893 Apr
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    261 /*offsetCode (3921/15)*/,
    6 /*offsetRemainder (3921%15)*/,
    0 /*deltaMinutes*/,
    1893 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1920
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Austria    CE%sT    1940 Apr  1  2:00s
  {
    &kZonePolicyAustria /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1945 Apr  2  2:00s
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    4 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    1:00    CEST    1945 Apr 12  2:00s
  {
    nullptr /*zonePolicy*/,
    "CEST" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    60 /*deltaMinutes*/,
    1945 /*untilYear*/,
    4 /*untilMonth*/,
    12 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             1:00    -    CET    1946
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Austria    CE%sT    1981
  {
    &kZonePolicyAustria /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Vienna[] ACE_TIME_PROGMEM = "\x0b" "Vienna";

const complete::Info::ZoneInfo kZoneEurope_Vienna ACE_TIME_PROGMEM = {
  kZoneNameEurope_Vienna /*name*/,
  0x734cc2e5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraEurope_Vienna /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Vilnius
// Eras: 15
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Vilnius[] ACE_TIME_PROGMEM = {
  // 1:41:16 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    405 /*offsetCode (6076/15)*/,
    1 /*offsetRemainder (6076%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:24:00    -    WMT    1917
  {
    nullptr /*zonePolicy*/,
    "WMT" /*format*/,
    336 /*offsetCode (5040/15)*/,
    0 /*offsetRemainder (5040%15)*/,
    0 /*deltaMinutes*/,
    1917 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:35:36    -    KMT    1919 Oct 10
  {
    nullptr /*zonePolicy*/,
    "KMT" /*format*/,
    382 /*offsetCode (5736/15)*/,
    6 /*offsetRemainder (5736%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    10 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1920 Jul 12
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    7 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1920 Oct  9
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    10 /*untilMonth*/,
    9 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    -    CET    1940 Aug  3
  {
    nullptr /*zonePolicy*/,
    "CET" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    8 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    -    MSK    1941 Jun 24
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    6 /*untilMonth*/,
    24 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Aug
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             3:00    Russia    MSK/MSD    1989 Mar 26  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1989 /*untilYear*/,
    3 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    Russia    EE%sT    1991 Sep 29  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    9 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             2:00    C-Eur    EE%sT    1998
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    -    EET    1998 Mar 29  1:00u
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             1:00    EU    CE%sT    1999 Oct 31  1:00u
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    10 /*untilMonth*/,
    31 /*untilDay*/,
    240 /*untilTimeCode (3600/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             2:00    -    EET    2003 Jan  1
  {
    nullptr /*zonePolicy*/,
    "EET" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    2003 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    EU    EE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Vilnius[] ACE_TIME_PROGMEM = "\x0b" "Vilnius";

const complete::Info::ZoneInfo kZoneEurope_Vilnius ACE_TIME_PROGMEM = {
  kZoneNameEurope_Vilnius /*name*/,
  0xdd63b8ce /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  15 /*numEras*/,
  kZoneEraEurope_Vilnius /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Volgograd
// Eras: 11
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Volgograd[] ACE_TIME_PROGMEM = {
  // 2:57:40 - LMT 1920 Jan 3
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    710 /*offsetCode (10660/15)*/,
    10 /*offsetRemainder (10660%15)*/,
    0 /*deltaMinutes*/,
    1920 /*untilYear*/,
    1 /*untilMonth*/,
    3 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              3:00    -    %z    1930 Jun 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1930 /*untilYear*/,
    6 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    -    %z    1961 Nov 11
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    11 /*untilMonth*/,
    11 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              4:00    Russia    %z    1988 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    1991 Mar 31  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    1991 /*untilYear*/,
    3 /*untilMonth*/,
    31 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    1992 Mar 29  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    1992 /*untilYear*/,
    3 /*untilMonth*/,
    29 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    Russia    MSK/MSD    2011 Mar 27  2:00s
  {
    &kZonePolicyRussia /*zonePolicy*/,
    "MSK/MSD" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    3 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    MSK    2014 Oct 26  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK    2018 Oct 28  2:00s
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    2018 /*untilYear*/,
    10 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              4:00    -    %z    2020 Dec 27  2:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    2020 /*untilYear*/,
    12 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //              3:00    -    MSK
  {
    nullptr /*zonePolicy*/,
    "MSK" /*format*/,
    720 /*offsetCode (10800/15)*/,
    0 /*offsetRemainder (10800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Volgograd[] ACE_TIME_PROGMEM = "\x0b" "Volgograd";

const complete::Info::ZoneInfo kZoneEurope_Volgograd ACE_TIME_PROGMEM = {
  kZoneNameEurope_Volgograd /*name*/,
  0x3ed0f389 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraEurope_Volgograd /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Warsaw
// Eras: 9
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Warsaw[] ACE_TIME_PROGMEM = {
  // 1:24:00 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    336 /*offsetCode (5040/15)*/,
    0 /*offsetRemainder (5040%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:24:00    -    WMT    1915 Aug  5
  {
    nullptr /*zonePolicy*/,
    "WMT" /*format*/,
    336 /*offsetCode (5040/15)*/,
    0 /*offsetRemainder (5040%15)*/,
    0 /*deltaMinutes*/,
    1915 /*untilYear*/,
    8 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1918 Sep 16  3:00
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1918 /*untilYear*/,
    9 /*untilMonth*/,
    16 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             2:00    Poland    EE%sT    1922 Jun
  {
    &kZonePolicyPoland /*zonePolicy*/,
    "EE%T" /*format*/,
    480 /*offsetCode (7200/15)*/,
    0 /*offsetRemainder (7200%15)*/,
    0 /*deltaMinutes*/,
    1922 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Poland    CE%sT    1940 Jun 23  2:00
  {
    &kZonePolicyPoland /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1940 /*untilYear*/,
    6 /*untilMonth*/,
    23 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    C-Eur    CE%sT    1944 Oct
  {
    &kZonePolicyC_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Poland    CE%sT    1977
  {
    &kZonePolicyPoland /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1977 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    W-Eur    CE%sT    1988
  {
    &kZonePolicyW_Eur /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1988 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Warsaw[] ACE_TIME_PROGMEM = "\x0b" "Warsaw";

const complete::Info::ZoneInfo kZoneEurope_Warsaw ACE_TIME_PROGMEM = {
  kZoneNameEurope_Warsaw /*name*/,
  0x75185c19 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Warsaw /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Europe/Zurich
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraEurope_Zurich[] ACE_TIME_PROGMEM = {
  // 0:34:08 - LMT 1853 Jul 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    136 /*offsetCode (2048/15)*/,
    8 /*offsetRemainder (2048%15)*/,
    0 /*deltaMinutes*/,
    1853 /*untilYear*/,
    7 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             0:29:46    -    BMT    1894 Jun
  {
    nullptr /*zonePolicy*/,
    "BMT" /*format*/,
    119 /*offsetCode (1786/15)*/,
    1 /*offsetRemainder (1786%15)*/,
    0 /*deltaMinutes*/,
    1894 /*untilYear*/,
    6 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    Swiss    CE%sT    1981
  {
    &kZonePolicySwiss /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    1981 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             1:00    EU    CE%sT
  {
    &kZonePolicyEU /*zonePolicy*/,
    "CE%T" /*format*/,
    240 /*offsetCode (3600/15)*/,
    0 /*offsetRemainder (3600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameEurope_Zurich[] ACE_TIME_PROGMEM = "\x0b" "Zurich";

const complete::Info::ZoneInfo kZoneEurope_Zurich ACE_TIME_PROGMEM = {
  kZoneNameEurope_Zurich /*name*/,
  0x7d8195b9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Zurich /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Indian/Chagos
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraIndian_Chagos[] ACE_TIME_PROGMEM = {
  // 4:49:40 - LMT 1907
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1158 /*offsetCode (17380/15)*/,
    10 /*offsetRemainder (17380%15)*/,
    0 /*deltaMinutes*/,
    1907 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z    1996
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    1996 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             6:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1440 /*offsetCode (21600/15)*/,
    0 /*offsetRemainder (21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameIndian_Chagos[] ACE_TIME_PROGMEM = "\x0c" "Chagos";

const complete::Info::ZoneInfo kZoneIndian_Chagos ACE_TIME_PROGMEM = {
  kZoneNameIndian_Chagos /*name*/,
  0x456f7c3c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraIndian_Chagos /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Indian/Maldives
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraIndian_Maldives[] ACE_TIME_PROGMEM = {
  // 4:54:00 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    1176 /*offsetCode (17640/15)*/,
    0 /*offsetRemainder (17640%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:54:00    -    MMT    1960
  {
    nullptr /*zonePolicy*/,
    "MMT" /*format*/,
    1176 /*offsetCode (17640/15)*/,
    0 /*offsetRemainder (17640%15)*/,
    0 /*deltaMinutes*/,
    1960 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             5:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    1200 /*offsetCode (18000/15)*/,
    0 /*offsetRemainder (18000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameIndian_Maldives[] ACE_TIME_PROGMEM = "\x0c" "Maldives";

const complete::Info::ZoneInfo kZoneIndian_Maldives ACE_TIME_PROGMEM = {
  kZoneNameIndian_Maldives /*name*/,
  0x9869681c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraIndian_Maldives /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Indian/Mauritius
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraIndian_Mauritius[] ACE_TIME_PROGMEM = {
  // 3:50:00 - LMT 1907
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    920 /*offsetCode (13800/15)*/,
    0 /*offsetRemainder (13800%15)*/,
    0 /*deltaMinutes*/,
    1907 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             4:00 Mauritius    %z
  {
    &kZonePolicyMauritius /*zonePolicy*/,
    "" /*format*/,
    960 /*offsetCode (14400/15)*/,
    0 /*offsetRemainder (14400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNameIndian_Mauritius[] ACE_TIME_PROGMEM = "\x0c" "Mauritius";

const complete::Info::ZoneInfo kZoneIndian_Mauritius ACE_TIME_PROGMEM = {
  kZoneNameIndian_Mauritius /*name*/,
  0x7b09c02a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraIndian_Mauritius /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Apia
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Apia[] ACE_TIME_PROGMEM = {
  // 12:33:04 - LMT 1892 Jul 5
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3012 /*offsetCode (45184/15)*/,
    4 /*offsetRemainder (45184%15)*/,
    0 /*deltaMinutes*/,
    1892 /*untilYear*/,
    7 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:26:56 -    LMT    1911
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2748 /*offsetCode (-41216/15)*/,
    4 /*offsetRemainder (-41216%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:30    -    %z    1950
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2760 /*offsetCode (-41400/15)*/,
    0 /*offsetRemainder (-41400%15)*/,
    0 /*deltaMinutes*/,
    1950 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    WS    %z    2011 Dec 29 24:00
  {
    &kZonePolicyWS /*zonePolicy*/,
    "" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    12 /*untilMonth*/,
    29 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              13:00    WS    %z
  {
    &kZonePolicyWS /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Apia[] ACE_TIME_PROGMEM = "\x0e" "Apia";

const complete::Info::ZoneInfo kZonePacific_Apia ACE_TIME_PROGMEM = {
  kZoneNamePacific_Apia /*name*/,
  0x23359b5e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Apia /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Auckland
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Auckland[] ACE_TIME_PROGMEM = {
  // 11:39:04 - LMT 1868 Nov 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2796 /*offsetCode (41944/15)*/,
    4 /*offsetRemainder (41944%15)*/,
    0 /*deltaMinutes*/,
    1868 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:30    NZ    NZ%sT    1946 Jan  1
  {
    &kZonePolicyNZ /*zonePolicy*/,
    "NZ%T" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:00    NZ    NZ%sT
  {
    &kZonePolicyNZ /*zonePolicy*/,
    "NZ%T" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Auckland[] ACE_TIME_PROGMEM = "\x0e" "Auckland";

const complete::Info::ZoneInfo kZonePacific_Auckland ACE_TIME_PROGMEM = {
  kZoneNamePacific_Auckland /*name*/,
  0x25062f86 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Auckland /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Bougainville
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Bougainville[] ACE_TIME_PROGMEM = {
  // 10:22:16 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2489 /*offsetCode (37336/15)*/,
    1 /*offsetRemainder (37336%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:48:32 -    PMMT    1895
  {
    nullptr /*zonePolicy*/,
    "PMMT" /*format*/,
    2354 /*offsetCode (35312/15)*/,
    2 /*offsetRemainder (35312%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    %z    1942 Jul
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z    1945 Aug 21
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    8 /*untilMonth*/,
    21 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    %z    2014 Dec 28  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2014 /*untilYear*/,
    12 /*untilMonth*/,
    28 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Bougainville[] ACE_TIME_PROGMEM = "\x0e" "Bougainville";

const complete::Info::ZoneInfo kZonePacific_Bougainville ACE_TIME_PROGMEM = {
  kZoneNamePacific_Bougainville /*name*/,
  0x5e10f7a4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraPacific_Bougainville /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Chatham
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Chatham[] ACE_TIME_PROGMEM = {
  // 12:13:48 - LMT 1868 Nov 2
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2935 /*offsetCode (44028/15)*/,
    3 /*offsetRemainder (44028%15)*/,
    0 /*deltaMinutes*/,
    1868 /*untilYear*/,
    11 /*untilMonth*/,
    2 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:15    -    %z    1946 Jan  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2940 /*offsetCode (44100/15)*/,
    0 /*offsetRemainder (44100%15)*/,
    0 /*deltaMinutes*/,
    1946 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:45    Chatham    %z
  {
    &kZonePolicyChatham /*zonePolicy*/,
    "" /*format*/,
    3060 /*offsetCode (45900/15)*/,
    0 /*offsetRemainder (45900%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Chatham[] ACE_TIME_PROGMEM = "\x0e" "Chatham";

const complete::Info::ZoneInfo kZonePacific_Chatham ACE_TIME_PROGMEM = {
  kZoneNamePacific_Chatham /*name*/,
  0x2f0de999 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Chatham /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Easter
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Easter[] ACE_TIME_PROGMEM = {
  // -7:17:28 - LMT 1890
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1750 /*offsetCode (-26248/15)*/,
    2 /*offsetRemainder (-26248%15)*/,
    0 /*deltaMinutes*/,
    1890 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:17:28 -    EMT    1932 Sep
  {
    nullptr /*zonePolicy*/,
    "EMT" /*format*/,
    -1750 /*offsetCode (-26248/15)*/,
    2 /*offsetRemainder (-26248%15)*/,
    0 /*deltaMinutes*/,
    1932 /*untilYear*/,
    9 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -7:00    Chile    %z    1982 Mar 14 3:00u
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -1680 /*offsetCode (-25200/15)*/,
    0 /*offsetRemainder (-25200%15)*/,
    0 /*deltaMinutes*/,
    1982 /*untilYear*/,
    3 /*untilMonth*/,
    14 /*untilDay*/,
    720 /*untilTimeCode (10800/15)*/,
    32 /*untilTimeModifier (kAtcSuffixU + seconds=0)*/,
  },
  //             -6:00    Chile    %z
  {
    &kZonePolicyChile /*zonePolicy*/,
    "" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Easter[] ACE_TIME_PROGMEM = "\x0e" "Easter";

const complete::Info::ZoneInfo kZonePacific_Easter ACE_TIME_PROGMEM = {
  kZoneNamePacific_Easter /*name*/,
  0xcf54f7e7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Easter /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Efate
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Efate[] ACE_TIME_PROGMEM = {
  // 11:13:16 - LMT 1912 Jan 13
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2693 /*offsetCode (40396/15)*/,
    1 /*offsetRemainder (40396%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    Vanuatu    %z
  {
    &kZonePolicyVanuatu /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Efate[] ACE_TIME_PROGMEM = "\x0e" "Efate";

const complete::Info::ZoneInfo kZonePacific_Efate ACE_TIME_PROGMEM = {
  kZoneNamePacific_Efate /*name*/,
  0x8a2bce28 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Efate /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Fakaofo
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Fakaofo[] ACE_TIME_PROGMEM = {
  // -11:24:56 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2740 /*offsetCode (-41096/15)*/,
    4 /*offsetRemainder (-41096%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    %z    2011 Dec 30
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    2011 /*untilYear*/,
    12 /*untilMonth*/,
    30 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             13:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Fakaofo[] ACE_TIME_PROGMEM = "\x0e" "Fakaofo";

const complete::Info::ZoneInfo kZonePacific_Fakaofo ACE_TIME_PROGMEM = {
  kZoneNamePacific_Fakaofo /*name*/,
  0x06532bba /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Fakaofo /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Fiji
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Fiji[] ACE_TIME_PROGMEM = {
  // 11:55:44 - LMT 1915 Oct 26
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2862 /*offsetCode (42944/15)*/,
    14 /*offsetRemainder (42944%15)*/,
    0 /*deltaMinutes*/,
    1915 /*untilYear*/,
    10 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:00    Fiji    %z
  {
    &kZonePolicyFiji /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Fiji[] ACE_TIME_PROGMEM = "\x0e" "Fiji";

const complete::Info::ZoneInfo kZonePacific_Fiji ACE_TIME_PROGMEM = {
  kZoneNamePacific_Fiji /*name*/,
  0x23383ba5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Fiji /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Galapagos
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Galapagos[] ACE_TIME_PROGMEM = {
  // -5:58:24 - LMT 1931
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -1434 /*offsetCode (-21504/15)*/,
    6 /*offsetRemainder (-21504%15)*/,
    0 /*deltaMinutes*/,
    1931 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -5:00    -    %z    1986
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1200 /*offsetCode (-18000/15)*/,
    0 /*offsetRemainder (-18000%15)*/,
    0 /*deltaMinutes*/,
    1986 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -6:00    Ecuador    %z
  {
    &kZonePolicyEcuador /*zonePolicy*/,
    "" /*format*/,
    -1440 /*offsetCode (-21600/15)*/,
    0 /*offsetRemainder (-21600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Galapagos[] ACE_TIME_PROGMEM = "\x0e" "Galapagos";

const complete::Info::ZoneInfo kZonePacific_Galapagos ACE_TIME_PROGMEM = {
  kZoneNamePacific_Galapagos /*name*/,
  0xa952f752 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Galapagos /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Gambier
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Gambier[] ACE_TIME_PROGMEM = {
  // -8:59:48 - LMT 1912 Oct 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2160 /*offsetCode (-32388/15)*/,
    12 /*offsetRemainder (-32388%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2160 /*offsetCode (-32400/15)*/,
    0 /*offsetRemainder (-32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Gambier[] ACE_TIME_PROGMEM = "\x0e" "Gambier";

const complete::Info::ZoneInfo kZonePacific_Gambier ACE_TIME_PROGMEM = {
  kZoneNamePacific_Gambier /*name*/,
  0x53720c3a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Gambier /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Guadalcanal
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Guadalcanal[] ACE_TIME_PROGMEM = {
  // 10:39:48 - LMT 1912 Oct 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2559 /*offsetCode (38388/15)*/,
    3 /*offsetRemainder (38388%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Guadalcanal[] ACE_TIME_PROGMEM = "\x0e" "Guadalcanal";

const complete::Info::ZoneInfo kZonePacific_Guadalcanal ACE_TIME_PROGMEM = {
  kZoneNamePacific_Guadalcanal /*name*/,
  0xf4dd25f0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Guadalcanal /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Guam
// Eras: 6
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Guam[] ACE_TIME_PROGMEM = {
  // -14:21:00 - LMT 1844 Dec 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -3444 /*offsetCode (-51660/15)*/,
    0 /*offsetRemainder (-51660%15)*/,
    0 /*deltaMinutes*/,
    1844 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:39:00 -    LMT    1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2316 /*offsetCode (34740/15)*/,
    0 /*offsetRemainder (34740%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    GST    1941 Dec 10
  {
    nullptr /*zonePolicy*/,
    "GST" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    12 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z    1944 Jul 31
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    7 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    Guam    G%sT    2000 Dec 23
  {
    &kZonePolicyGuam /*zonePolicy*/,
    "G%T" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    2000 /*untilYear*/,
    12 /*untilMonth*/,
    23 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    ChST
  {
    nullptr /*zonePolicy*/,
    "ChST" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Guam[] ACE_TIME_PROGMEM = "\x0e" "Guam";

const complete::Info::ZoneInfo kZonePacific_Guam ACE_TIME_PROGMEM = {
  kZoneNamePacific_Guam /*name*/,
  0x2338f9ed /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraPacific_Guam /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Honolulu
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Honolulu[] ACE_TIME_PROGMEM = {
  // -10:31:26 - LMT 1896 Jan 13 12:00
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2526 /*offsetCode (-37886/15)*/,
    4 /*offsetRemainder (-37886%15)*/,
    0 /*deltaMinutes*/,
    1896 /*untilYear*/,
    1 /*untilMonth*/,
    13 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:30    -    HST    1933 Apr 30  2:00
  {
    nullptr /*zonePolicy*/,
    "HST" /*format*/,
    -2520 /*offsetCode (-37800/15)*/,
    0 /*offsetRemainder (-37800%15)*/,
    0 /*deltaMinutes*/,
    1933 /*untilYear*/,
    4 /*untilMonth*/,
    30 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:30    1:00    HDT    1933 May 21 12:00
  {
    nullptr /*zonePolicy*/,
    "HDT" /*format*/,
    -2520 /*offsetCode (-37800/15)*/,
    0 /*offsetRemainder (-37800%15)*/,
    60 /*deltaMinutes*/,
    1933 /*untilYear*/,
    5 /*untilMonth*/,
    21 /*untilDay*/,
    2880 /*untilTimeCode (43200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:30    US    H%sT    1947 Jun  8  2:00
  {
    &kZonePolicyUS /*zonePolicy*/,
    "H%T" /*format*/,
    -2520 /*offsetCode (-37800/15)*/,
    0 /*offsetRemainder (-37800%15)*/,
    0 /*deltaMinutes*/,
    1947 /*untilYear*/,
    6 /*untilMonth*/,
    8 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    -    HST
  {
    nullptr /*zonePolicy*/,
    "HST" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Honolulu[] ACE_TIME_PROGMEM = "\x0e" "Honolulu";

const complete::Info::ZoneInfo kZonePacific_Honolulu ACE_TIME_PROGMEM = {
  kZoneNamePacific_Honolulu /*name*/,
  0xe6e70af9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Honolulu /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Kanton
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Kanton[] ACE_TIME_PROGMEM = {
  // 0 - -00 1937 Aug 31
  {
    nullptr /*zonePolicy*/,
    "-00" /*format*/,
    0 /*offsetCode (0/15)*/,
    0 /*offsetRemainder (0%15)*/,
    0 /*deltaMinutes*/,
    1937 /*untilYear*/,
    8 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -12:00    -    %z    1979 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2880 /*offsetCode (-43200/15)*/,
    0 /*offsetRemainder (-43200%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    %z    1994 Dec 31
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              13:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Kanton[] ACE_TIME_PROGMEM = "\x0e" "Kanton";

const complete::Info::ZoneInfo kZonePacific_Kanton ACE_TIME_PROGMEM = {
  kZoneNamePacific_Kanton /*name*/,
  0xdd512f0e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Kanton /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Kiritimati
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Kiritimati[] ACE_TIME_PROGMEM = {
  // -10:29:20 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2518 /*offsetCode (-37760/15)*/,
    10 /*offsetRemainder (-37760%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:40    -    %z    1979 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2560 /*offsetCode (-38400/15)*/,
    0 /*offsetRemainder (-38400%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    -    %z    1994 Dec 31
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    1994 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              14:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3360 /*offsetCode (50400/15)*/,
    0 /*offsetRemainder (50400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Kiritimati[] ACE_TIME_PROGMEM = "\x0e" "Kiritimati";

const complete::Info::ZoneInfo kZonePacific_Kiritimati ACE_TIME_PROGMEM = {
  kZoneNamePacific_Kiritimati /*name*/,
  0x8305073a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Kiritimati /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Kosrae
// Eras: 10
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Kosrae[] ACE_TIME_PROGMEM = {
  // -13:08:04 - LMT 1844 Dec 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -3153 /*offsetCode (-47284/15)*/,
    11 /*offsetRemainder (-47284%15)*/,
    0 /*deltaMinutes*/,
    1844 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              10:51:56 -    LMT    1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2607 /*offsetCode (39116/15)*/,
    11 /*offsetRemainder (39116%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z    1914 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1914 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //               9:00    -    %z    1919 Feb  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1919 /*untilYear*/,
    2 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z    1937
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1937 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              10:00    -    %z    1941 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //               9:00    -    %z    1945 Aug
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    8 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z    1969 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              12:00    -    %z    1999
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Kosrae[] ACE_TIME_PROGMEM = "\x0e" "Kosrae";

const complete::Info::ZoneInfo kZonePacific_Kosrae ACE_TIME_PROGMEM = {
  kZoneNamePacific_Kosrae /*name*/,
  0xde5139a8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraPacific_Kosrae /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Kwajalein
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Kwajalein[] ACE_TIME_PROGMEM = {
  // 11:09:20 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2677 /*offsetCode (40160/15)*/,
    5 /*offsetRemainder (40160%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z    1937
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1937 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              10:00    -    %z    1941 Apr  1
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    1941 /*untilYear*/,
    4 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //               9:00    -    %z    1944 Feb  6
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1944 /*untilYear*/,
    2 /*untilMonth*/,
    6 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              11:00    -    %z    1969 Oct
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    1969 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -12:00    -    %z    1993 Aug 20 24:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2880 /*offsetCode (-43200/15)*/,
    0 /*offsetRemainder (-43200%15)*/,
    0 /*deltaMinutes*/,
    1993 /*untilYear*/,
    8 /*untilMonth*/,
    20 /*untilDay*/,
    5760 /*untilTimeCode (86400/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              12:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Kwajalein[] ACE_TIME_PROGMEM = "\x0e" "Kwajalein";

const complete::Info::ZoneInfo kZonePacific_Kwajalein ACE_TIME_PROGMEM = {
  kZoneNamePacific_Kwajalein /*name*/,
  0x8e216759 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraPacific_Kwajalein /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Marquesas
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Marquesas[] ACE_TIME_PROGMEM = {
  // -9:18:00 - LMT 1912 Oct 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2232 /*offsetCode (-33480/15)*/,
    0 /*offsetRemainder (-33480%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              -9:30    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2280 /*offsetCode (-34200/15)*/,
    0 /*offsetRemainder (-34200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Marquesas[] ACE_TIME_PROGMEM = "\x0e" "Marquesas";

const complete::Info::ZoneInfo kZonePacific_Marquesas ACE_TIME_PROGMEM = {
  kZoneNamePacific_Marquesas /*name*/,
  0x57ca7135 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Marquesas /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Nauru
// Eras: 5
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Nauru[] ACE_TIME_PROGMEM = {
  // 11:07:40 - LMT 1921 Jan 15
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2670 /*offsetCode (40060/15)*/,
    10 /*offsetRemainder (40060%15)*/,
    0 /*deltaMinutes*/,
    1921 /*untilYear*/,
    1 /*untilMonth*/,
    15 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:30    -    %z    1942 Aug 29
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    0 /*deltaMinutes*/,
    1942 /*untilYear*/,
    8 /*untilMonth*/,
    29 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              9:00    -    %z    1945 Sep  8
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    8 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:30    -    %z    1979 Feb 10  2:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    0 /*deltaMinutes*/,
    1979 /*untilYear*/,
    2 /*untilMonth*/,
    10 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Nauru[] ACE_TIME_PROGMEM = "\x0e" "Nauru";

const complete::Info::ZoneInfo kZonePacific_Nauru ACE_TIME_PROGMEM = {
  kZoneNamePacific_Nauru /*name*/,
  0x8acc41ae /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Nauru /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Niue
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Niue[] ACE_TIME_PROGMEM = {
  // -11:19:40 - LMT 1952 Oct 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2719 /*offsetCode (-40780/15)*/,
    5 /*offsetRemainder (-40780%15)*/,
    0 /*deltaMinutes*/,
    1952 /*untilYear*/,
    10 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:20    -    %z    1964 Jul
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2720 /*offsetCode (-40800/15)*/,
    0 /*offsetRemainder (-40800%15)*/,
    0 /*deltaMinutes*/,
    1964 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Niue[] ACE_TIME_PROGMEM = "\x0e" "Niue";

const complete::Info::ZoneInfo kZonePacific_Niue ACE_TIME_PROGMEM = {
  kZoneNamePacific_Niue /*name*/,
  0x233ca014 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Niue /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Norfolk
// Eras: 7
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Norfolk[] ACE_TIME_PROGMEM = {
  // 11:11:52 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2687 /*offsetCode (40312/15)*/,
    7 /*offsetRemainder (40312%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:12    -    %z    1951
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2688 /*offsetCode (40320/15)*/,
    0 /*offsetRemainder (40320%15)*/,
    0 /*deltaMinutes*/,
    1951 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:30    -    %z    1974 Oct 27 02:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    0 /*deltaMinutes*/,
    1974 /*untilYear*/,
    10 /*untilMonth*/,
    27 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:30    1:00    %z    1975 Mar  2 02:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    60 /*deltaMinutes*/,
    1975 /*untilYear*/,
    3 /*untilMonth*/,
    2 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:30    -    %z    2015 Oct  4 02:00s
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2760 /*offsetCode (41400/15)*/,
    0 /*offsetRemainder (41400%15)*/,
    0 /*deltaMinutes*/,
    2015 /*untilYear*/,
    10 /*untilMonth*/,
    4 /*untilDay*/,
    480 /*untilTimeCode (7200/15)*/,
    16 /*untilTimeModifier (kAtcSuffixS + seconds=0)*/,
  },
  //             11:00    -    %z    2019 Jul
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    2019 /*untilYear*/,
    7 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    AN    %z
  {
    &kZonePolicyAN /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Norfolk[] ACE_TIME_PROGMEM = "\x0e" "Norfolk";

const complete::Info::ZoneInfo kZonePacific_Norfolk ACE_TIME_PROGMEM = {
  kZoneNamePacific_Norfolk /*name*/,
  0x8f4eb4be /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraPacific_Norfolk /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Noumea
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Noumea[] ACE_TIME_PROGMEM = {
  // 11:05:48 - LMT 1912 Jan 13
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2663 /*offsetCode (39948/15)*/,
    3 /*offsetRemainder (39948%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    1 /*untilMonth*/,
    13 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             11:00    NC    %z
  {
    &kZonePolicyNC /*zonePolicy*/,
    "" /*format*/,
    2640 /*offsetCode (39600/15)*/,
    0 /*offsetRemainder (39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Noumea[] ACE_TIME_PROGMEM = "\x0e" "Noumea";

const complete::Info::ZoneInfo kZonePacific_Noumea ACE_TIME_PROGMEM = {
  kZoneNamePacific_Noumea /*name*/,
  0xe551b788 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Noumea /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Pago_Pago
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Pago_Pago[] ACE_TIME_PROGMEM = {
  // 12:37:12 - LMT 1892 Jul 5
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3028 /*offsetCode (45432/15)*/,
    12 /*offsetRemainder (45432%15)*/,
    0 /*deltaMinutes*/,
    1892 /*untilYear*/,
    7 /*untilMonth*/,
    5 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:22:48 -    LMT    1911
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2732 /*offsetCode (-40968/15)*/,
    12 /*offsetRemainder (-40968%15)*/,
    0 /*deltaMinutes*/,
    1911 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -11:00    -    SST
  {
    nullptr /*zonePolicy*/,
    "SST" /*format*/,
    -2640 /*offsetCode (-39600/15)*/,
    0 /*offsetRemainder (-39600%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Pago_Pago[] ACE_TIME_PROGMEM = "\x0e" "Pago_Pago";

const complete::Info::ZoneInfo kZonePacific_Pago_Pago ACE_TIME_PROGMEM = {
  kZoneNamePacific_Pago_Pago /*name*/,
  0x603aebd0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Pago_Pago /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Palau
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Palau[] ACE_TIME_PROGMEM = {
  // -15:02:04 - LMT 1844 Dec 31
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -3609 /*offsetCode (-54124/15)*/,
    11 /*offsetRemainder (-54124%15)*/,
    0 /*deltaMinutes*/,
    1844 /*untilYear*/,
    12 /*untilMonth*/,
    31 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //               8:57:56 -    LMT    1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2151 /*offsetCode (32276/15)*/,
    11 /*offsetRemainder (32276%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //               9:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2160 /*offsetCode (32400/15)*/,
    0 /*offsetRemainder (32400%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Palau[] ACE_TIME_PROGMEM = "\x0e" "Palau";

const complete::Info::ZoneInfo kZonePacific_Palau ACE_TIME_PROGMEM = {
  kZoneNamePacific_Palau /*name*/,
  0x8af04a36 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Palau /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Pitcairn
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Pitcairn[] ACE_TIME_PROGMEM = {
  // -8:40:20 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2082 /*offsetCode (-31220/15)*/,
    10 /*offsetRemainder (-31220%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:30    -    %z    1998 Apr 27  0:00
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2040 /*offsetCode (-30600/15)*/,
    0 /*offsetRemainder (-30600%15)*/,
    0 /*deltaMinutes*/,
    1998 /*untilYear*/,
    4 /*untilMonth*/,
    27 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -8:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -1920 /*offsetCode (-28800/15)*/,
    0 /*offsetRemainder (-28800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Pitcairn[] ACE_TIME_PROGMEM = "\x0e" "Pitcairn";

const complete::Info::ZoneInfo kZonePacific_Pitcairn ACE_TIME_PROGMEM = {
  kZoneNamePacific_Pitcairn /*name*/,
  0x8837d8bd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Pitcairn /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Port_Moresby
// Eras: 3
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Port_Moresby[] ACE_TIME_PROGMEM = {
  // 9:48:40 - LMT 1880
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2354 /*offsetCode (35320/15)*/,
    10 /*offsetRemainder (35320%15)*/,
    0 /*deltaMinutes*/,
    1880 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             9:48:32    -    PMMT    1895
  {
    nullptr /*zonePolicy*/,
    "PMMT" /*format*/,
    2354 /*offsetCode (35312/15)*/,
    2 /*offsetRemainder (35312%15)*/,
    0 /*deltaMinutes*/,
    1895 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             10:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2400 /*offsetCode (36000/15)*/,
    0 /*offsetRemainder (36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Port_Moresby[] ACE_TIME_PROGMEM = "\x0e" "Port_Moresby";

const complete::Info::ZoneInfo kZonePacific_Port_Moresby ACE_TIME_PROGMEM = {
  kZoneNamePacific_Port_Moresby /*name*/,
  0xa7ba7f68 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Port_Moresby /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Rarotonga
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Rarotonga[] ACE_TIME_PROGMEM = {
  // 13:20:56 - LMT 1899 Dec 26
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    3203 /*offsetCode (48056/15)*/,
    11 /*offsetRemainder (48056%15)*/,
    0 /*deltaMinutes*/,
    1899 /*untilYear*/,
    12 /*untilMonth*/,
    26 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:39:04 -    LMT    1952 Oct 16
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2557 /*offsetCode (-38344/15)*/,
    11 /*offsetRemainder (-38344%15)*/,
    0 /*deltaMinutes*/,
    1952 /*untilYear*/,
    10 /*untilMonth*/,
    16 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:30    -    %z    1978 Nov 12
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2520 /*offsetCode (-37800/15)*/,
    0 /*offsetRemainder (-37800%15)*/,
    0 /*deltaMinutes*/,
    1978 /*untilYear*/,
    11 /*untilMonth*/,
    12 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    Cook    %z
  {
    &kZonePolicyCook /*zonePolicy*/,
    "" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Rarotonga[] ACE_TIME_PROGMEM = "\x0e" "Rarotonga";

const complete::Info::ZoneInfo kZonePacific_Rarotonga ACE_TIME_PROGMEM = {
  kZoneNamePacific_Rarotonga /*name*/,
  0x9981a3b0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Rarotonga /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Tahiti
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Tahiti[] ACE_TIME_PROGMEM = {
  // -9:58:16 - LMT 1912 Oct 1
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    -2394 /*offsetCode (-35896/15)*/,
    14 /*offsetRemainder (-35896%15)*/,
    0 /*deltaMinutes*/,
    1912 /*untilYear*/,
    10 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             -10:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    -2400 /*offsetCode (-36000/15)*/,
    0 /*offsetRemainder (-36000%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Tahiti[] ACE_TIME_PROGMEM = "\x0e" "Tahiti";

const complete::Info::ZoneInfo kZonePacific_Tahiti ACE_TIME_PROGMEM = {
  kZoneNamePacific_Tahiti /*name*/,
  0xf24c2446 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tahiti /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Tarawa
// Eras: 2
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Tarawa[] ACE_TIME_PROGMEM = {
  // 11:32:04 - LMT 1901
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2768 /*offsetCode (41524/15)*/,
    4 /*offsetRemainder (41524%15)*/,
    0 /*deltaMinutes*/,
    1901 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //              12:00    -    %z
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2880 /*offsetCode (43200/15)*/,
    0 /*offsetRemainder (43200%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Tarawa[] ACE_TIME_PROGMEM = "\x0e" "Tarawa";

const complete::Info::ZoneInfo kZonePacific_Tarawa ACE_TIME_PROGMEM = {
  kZoneNamePacific_Tarawa /*name*/,
  0xf2517e63 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tarawa /*eras*/,
  nullptr /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Zone name: Pacific/Tongatapu
// Eras: 4
//---------------------------------------------------------------------------

static const complete::Info::ZoneEra kZoneEraPacific_Tongatapu[] ACE_TIME_PROGMEM = {
  // 12:19:12 - LMT 1945 Sep 10
  {
    nullptr /*zonePolicy*/,
    "LMT" /*format*/,
    2956 /*offsetCode (44352/15)*/,
    12 /*offsetRemainder (44352%15)*/,
    0 /*deltaMinutes*/,
    1945 /*untilYear*/,
    9 /*untilMonth*/,
    10 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             12:20    -    %z    1961
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    2960 /*offsetCode (44400/15)*/,
    0 /*offsetRemainder (44400%15)*/,
    0 /*deltaMinutes*/,
    1961 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             13:00    -    %z    1999
  {
    nullptr /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    1999 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },
  //             13:00    Tonga    %z
  {
    &kZonePolicyTonga /*zonePolicy*/,
    "" /*format*/,
    3120 /*offsetCode (46800/15)*/,
    0 /*offsetRemainder (46800%15)*/,
    0 /*deltaMinutes*/,
    32767 /*untilYear*/,
    1 /*untilMonth*/,
    1 /*untilDay*/,
    0 /*untilTimeCode (0/15)*/,
    0 /*untilTimeModifier (kAtcSuffixW + seconds=0)*/,
  },

};

static const char kZoneNamePacific_Tongatapu[] ACE_TIME_PROGMEM = "\x0e" "Tongatapu";

const complete::Info::ZoneInfo kZonePacific_Tongatapu ACE_TIME_PROGMEM = {
  kZoneNamePacific_Tongatapu /*name*/,
  0x262ca836 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Tongatapu /*eras*/,
  nullptr /*targetInfo*/,
};



//---------------------------------------------------------------------------
// Links: 257
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// Link name: Africa/Accra -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Accra[] ACE_TIME_PROGMEM = "\x01" "Accra";

const complete::Info::ZoneInfo kZoneAfrica_Accra ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Accra /*name*/,
  0x77d5b054 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Addis_Ababa -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Addis_Ababa[] ACE_TIME_PROGMEM = "\x01" "Addis_Ababa";

const complete::Info::ZoneInfo kZoneAfrica_Addis_Ababa ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Addis_Ababa /*name*/,
  0x05ae1e65 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Asmara -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Asmara[] ACE_TIME_PROGMEM = "\x01" "Asmara";

const complete::Info::ZoneInfo kZoneAfrica_Asmara ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Asmara /*name*/,
  0x73b278ef /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Asmera -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Asmera[] ACE_TIME_PROGMEM = "\x01" "Asmera";

const complete::Info::ZoneInfo kZoneAfrica_Asmera ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Asmera /*name*/,
  0x73b289f3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Bamako -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Bamako[] ACE_TIME_PROGMEM = "\x01" "Bamako";

const complete::Info::ZoneInfo kZoneAfrica_Bamako ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Bamako /*name*/,
  0x74c1e7a5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Bangui -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Bangui[] ACE_TIME_PROGMEM = "\x01" "Bangui";

const complete::Info::ZoneInfo kZoneAfrica_Bangui ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Bangui /*name*/,
  0x74c28ed0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Banjul -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Banjul[] ACE_TIME_PROGMEM = "\x01" "Banjul";

const complete::Info::ZoneInfo kZoneAfrica_Banjul ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Banjul /*name*/,
  0x74c29b96 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Blantyre -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Blantyre[] ACE_TIME_PROGMEM = "\x01" "Blantyre";

const complete::Info::ZoneInfo kZoneAfrica_Blantyre ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Blantyre /*name*/,
  0xe08d813b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Brazzaville -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Brazzaville[] ACE_TIME_PROGMEM = "\x01" "Brazzaville";

const complete::Info::ZoneInfo kZoneAfrica_Brazzaville ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Brazzaville /*name*/,
  0x39cda760 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Bujumbura -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Bujumbura[] ACE_TIME_PROGMEM = "\x01" "Bujumbura";

const complete::Info::ZoneInfo kZoneAfrica_Bujumbura ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Bujumbura /*name*/,
  0x05232a47 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Conakry -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Conakry[] ACE_TIME_PROGMEM = "\x01" "Conakry";

const complete::Info::ZoneInfo kZoneAfrica_Conakry ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Conakry /*name*/,
  0x7ab36b31 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Dakar -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Dakar[] ACE_TIME_PROGMEM = "\x01" "Dakar";

const complete::Info::ZoneInfo kZoneAfrica_Dakar ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Dakar /*name*/,
  0x780b00fd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Dar_es_Salaam -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Dar_es_Salaam[] ACE_TIME_PROGMEM = "\x01" "Dar_es_Salaam";

const complete::Info::ZoneInfo kZoneAfrica_Dar_es_Salaam ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Dar_es_Salaam /*name*/,
  0xa04c47b6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Djibouti -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Djibouti[] ACE_TIME_PROGMEM = "\x01" "Djibouti";

const complete::Info::ZoneInfo kZoneAfrica_Djibouti ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Djibouti /*name*/,
  0x30ea01d4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Douala -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Douala[] ACE_TIME_PROGMEM = "\x01" "Douala";

const complete::Info::ZoneInfo kZoneAfrica_Douala ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Douala /*name*/,
  0x7a6df310 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Freetown -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Freetown[] ACE_TIME_PROGMEM = "\x01" "Freetown";

const complete::Info::ZoneInfo kZoneAfrica_Freetown ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Freetown /*name*/,
  0x6823dd64 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Gaborone -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Gaborone[] ACE_TIME_PROGMEM = "\x01" "Gaborone";

const complete::Info::ZoneInfo kZoneAfrica_Gaborone ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Gaborone /*name*/,
  0x317c0aa7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Harare -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Harare[] ACE_TIME_PROGMEM = "\x01" "Harare";

const complete::Info::ZoneInfo kZoneAfrica_Harare ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Harare /*name*/,
  0x82c39a2d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Kampala -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Kampala[] ACE_TIME_PROGMEM = "\x01" "Kampala";

const complete::Info::ZoneInfo kZoneAfrica_Kampala ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Kampala /*name*/,
  0xc1d30e31 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Kigali -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Kigali[] ACE_TIME_PROGMEM = "\x01" "Kigali";

const complete::Info::ZoneInfo kZoneAfrica_Kigali ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Kigali /*name*/,
  0x8a4dcf2b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Kinshasa -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Kinshasa[] ACE_TIME_PROGMEM = "\x01" "Kinshasa";

const complete::Info::ZoneInfo kZoneAfrica_Kinshasa ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Kinshasa /*name*/,
  0x6695d70c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Libreville -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Libreville[] ACE_TIME_PROGMEM = "\x01" "Libreville";

const complete::Info::ZoneInfo kZoneAfrica_Libreville ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Libreville /*name*/,
  0x01d96de4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Lome -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Lome[] ACE_TIME_PROGMEM = "\x01" "Lome";

const complete::Info::ZoneInfo kZoneAfrica_Lome ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Lome /*name*/,
  0xd51c3a07 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Luanda -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Luanda[] ACE_TIME_PROGMEM = "\x01" "Luanda";

const complete::Info::ZoneInfo kZoneAfrica_Luanda ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Luanda /*name*/,
  0x8d7909cf /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Lubumbashi -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Lubumbashi[] ACE_TIME_PROGMEM = "\x01" "Lubumbashi";

const complete::Info::ZoneInfo kZoneAfrica_Lubumbashi ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Lubumbashi /*name*/,
  0x6fd88566 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Lusaka -> Africa/Maputo
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Lusaka[] ACE_TIME_PROGMEM = "\x01" "Lusaka";

const complete::Info::ZoneInfo kZoneAfrica_Lusaka ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Lusaka /*name*/,
  0x8d82b23b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Maputo /*eras*/,
  &kZoneAfrica_Maputo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Malabo -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Malabo[] ACE_TIME_PROGMEM = "\x01" "Malabo";

const complete::Info::ZoneInfo kZoneAfrica_Malabo ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Malabo /*name*/,
  0x8e6a1906 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Maseru -> Africa/Johannesburg
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Maseru[] ACE_TIME_PROGMEM = "\x01" "Maseru";

const complete::Info::ZoneInfo kZoneAfrica_Maseru ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Maseru /*name*/,
  0x8e6e02c7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAfrica_Johannesburg /*eras*/,
  &kZoneAfrica_Johannesburg /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Mbabane -> Africa/Johannesburg
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Mbabane[] ACE_TIME_PROGMEM = "\x01" "Mbabane";

const complete::Info::ZoneInfo kZoneAfrica_Mbabane ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Mbabane /*name*/,
  0x5d3bdd40 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAfrica_Johannesburg /*eras*/,
  &kZoneAfrica_Johannesburg /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Mogadishu -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Mogadishu[] ACE_TIME_PROGMEM = "\x01" "Mogadishu";

const complete::Info::ZoneInfo kZoneAfrica_Mogadishu ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Mogadishu /*name*/,
  0x66bc159b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Niamey -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Niamey[] ACE_TIME_PROGMEM = "\x01" "Niamey";

const complete::Info::ZoneInfo kZoneAfrica_Niamey ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Niamey /*name*/,
  0x914a30fd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Nouakchott -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Nouakchott[] ACE_TIME_PROGMEM = "\x01" "Nouakchott";

const complete::Info::ZoneInfo kZoneAfrica_Nouakchott ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Nouakchott /*name*/,
  0x3dc49dba /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Ouagadougou -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Ouagadougou[] ACE_TIME_PROGMEM = "\x01" "Ouagadougou";

const complete::Info::ZoneInfo kZoneAfrica_Ouagadougou ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Ouagadougou /*name*/,
  0x04d7219a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Porto-Novo -> Africa/Lagos
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Porto_Novo[] ACE_TIME_PROGMEM = "\x01" "Porto-Novo";

const complete::Info::ZoneInfo kZoneAfrica_Porto_Novo ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Porto_Novo /*name*/,
  0x3d1bf95d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAfrica_Lagos /*eras*/,
  &kZoneAfrica_Lagos /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Africa/Timbuktu -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAfrica_Timbuktu[] ACE_TIME_PROGMEM = "\x01" "Timbuktu";

const complete::Info::ZoneInfo kZoneAfrica_Timbuktu ACE_TIME_PROGMEM = {
  kZoneNameAfrica_Timbuktu /*name*/,
  0xb164d56f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Anguilla -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Anguilla[] ACE_TIME_PROGMEM = "\x02" "Anguilla";

const complete::Info::ZoneInfo kZoneAmerica_Anguilla ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Anguilla /*name*/,
  0xafe31333 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Antigua -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Antigua[] ACE_TIME_PROGMEM = "\x02" "Antigua";

const complete::Info::ZoneInfo kZoneAmerica_Antigua ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Antigua /*name*/,
  0xc067a32f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Argentina/ComodRivadavia -> America/Argentina/Catamarca
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Argentina_ComodRivadavia[] ACE_TIME_PROGMEM = "\x02" "\x04" "ComodRivadavia";

const complete::Info::ZoneInfo kZoneAmerica_Argentina_ComodRivadavia ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Argentina_ComodRivadavia /*name*/,
  0x22758877 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Aruba -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Aruba[] ACE_TIME_PROGMEM = "\x02" "Aruba";

const complete::Info::ZoneInfo kZoneAmerica_Aruba ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Aruba /*name*/,
  0x97cf8651 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Atikokan -> America/Panama
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Atikokan[] ACE_TIME_PROGMEM = "\x02" "Atikokan";

const complete::Info::ZoneInfo kZoneAmerica_Atikokan ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Atikokan /*name*/,
  0x81b92098 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Panama /*eras*/,
  &kZoneAmerica_Panama /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Atka -> America/Adak
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Atka[] ACE_TIME_PROGMEM = "\x02" "Atka";

const complete::Info::ZoneInfo kZoneAmerica_Atka ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Atka /*name*/,
  0x97fe8f27 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Adak /*eras*/,
  &kZoneAmerica_Adak /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Blanc-Sablon -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Blanc_Sablon[] ACE_TIME_PROGMEM = "\x02" "Blanc-Sablon";

const complete::Info::ZoneInfo kZoneAmerica_Blanc_Sablon ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Blanc_Sablon /*name*/,
  0x6e299892 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Buenos_Aires -> America/Argentina/Buenos_Aires
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Buenos_Aires[] ACE_TIME_PROGMEM = "\x02" "Buenos_Aires";

const complete::Info::ZoneInfo kZoneAmerica_Buenos_Aires ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Buenos_Aires /*name*/,
  0x67d79a05 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Argentina_Buenos_Aires /*eras*/,
  &kZoneAmerica_Argentina_Buenos_Aires /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Catamarca -> America/Argentina/Catamarca
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Catamarca[] ACE_TIME_PROGMEM = "\x02" "Catamarca";

const complete::Info::ZoneInfo kZoneAmerica_Catamarca ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Catamarca /*name*/,
  0x5036e963 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  12 /*numEras*/,
  kZoneEraAmerica_Argentina_Catamarca /*eras*/,
  &kZoneAmerica_Argentina_Catamarca /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Cayman -> America/Panama
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Cayman[] ACE_TIME_PROGMEM = "\x02" "Cayman";

const complete::Info::ZoneInfo kZoneAmerica_Cayman ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cayman /*name*/,
  0x953961df /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Panama /*eras*/,
  &kZoneAmerica_Panama /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Coral_Harbour -> America/Panama
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Coral_Harbour[] ACE_TIME_PROGMEM = "\x02" "Coral_Harbour";

const complete::Info::ZoneInfo kZoneAmerica_Coral_Harbour ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Coral_Harbour /*name*/,
  0xabcb7569 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Panama /*eras*/,
  &kZoneAmerica_Panama /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Cordoba -> America/Argentina/Cordoba
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Cordoba[] ACE_TIME_PROGMEM = "\x02" "Cordoba";

const complete::Info::ZoneInfo kZoneAmerica_Cordoba ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Cordoba /*name*/,
  0x5c8a7600 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Creston -> America/Phoenix
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Creston[] ACE_TIME_PROGMEM = "\x02" "Creston";

const complete::Info::ZoneInfo kZoneAmerica_Creston ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Creston /*name*/,
  0x62a70204 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Phoenix /*eras*/,
  &kZoneAmerica_Phoenix /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Curacao -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Curacao[] ACE_TIME_PROGMEM = "\x02" "Curacao";

const complete::Info::ZoneInfo kZoneAmerica_Curacao ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Curacao /*name*/,
  0x6a879184 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Dominica -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Dominica[] ACE_TIME_PROGMEM = "\x02" "Dominica";

const complete::Info::ZoneInfo kZoneAmerica_Dominica ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Dominica /*name*/,
  0xcecb4c4a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Ensenada -> America/Tijuana
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Ensenada[] ACE_TIME_PROGMEM = "\x02" "Ensenada";

const complete::Info::ZoneInfo kZoneAmerica_Ensenada ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Ensenada /*name*/,
  0x7bc95445 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  25 /*numEras*/,
  kZoneEraAmerica_Tijuana /*eras*/,
  &kZoneAmerica_Tijuana /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Fort_Wayne -> America/Indiana/Indianapolis
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Fort_Wayne[] ACE_TIME_PROGMEM = "\x02" "Fort_Wayne";

const complete::Info::ZoneInfo kZoneAmerica_Fort_Wayne ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Fort_Wayne /*name*/,
  0x7eaaaf24 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Godthab -> America/Nuuk
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Godthab[] ACE_TIME_PROGMEM = "\x02" "Godthab";

const complete::Info::ZoneInfo kZoneAmerica_Godthab ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Godthab /*name*/,
  0x8f7eba1f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Nuuk /*eras*/,
  &kZoneAmerica_Nuuk /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Grenada -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Grenada[] ACE_TIME_PROGMEM = "\x02" "Grenada";

const complete::Info::ZoneInfo kZoneAmerica_Grenada ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Grenada /*name*/,
  0x968ce4d8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Guadeloupe -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Guadeloupe[] ACE_TIME_PROGMEM = "\x02" "Guadeloupe";

const complete::Info::ZoneInfo kZoneAmerica_Guadeloupe ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Guadeloupe /*name*/,
  0xcd1f8a31 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Indianapolis -> America/Indiana/Indianapolis
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Indianapolis[] ACE_TIME_PROGMEM = "\x02" "Indianapolis";

const complete::Info::ZoneInfo kZoneAmerica_Indianapolis ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Indianapolis /*name*/,
  0x6a009ae1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Jujuy -> America/Argentina/Jujuy
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Jujuy[] ACE_TIME_PROGMEM = "\x02" "Jujuy";

const complete::Info::ZoneInfo kZoneAmerica_Jujuy ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Jujuy /*name*/,
  0x9873dbbd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraAmerica_Argentina_Jujuy /*eras*/,
  &kZoneAmerica_Argentina_Jujuy /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Knox_IN -> America/Indiana/Knox
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Knox_IN[] ACE_TIME_PROGMEM = "\x02" "Knox_IN";

const complete::Info::ZoneInfo kZoneAmerica_Knox_IN ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Knox_IN /*name*/,
  0xc1db9a1c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Indiana_Knox /*eras*/,
  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Kralendijk -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Kralendijk[] ACE_TIME_PROGMEM = "\x02" "Kralendijk";

const complete::Info::ZoneInfo kZoneAmerica_Kralendijk ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Kralendijk /*name*/,
  0xe7c456c5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Louisville -> America/Kentucky/Louisville
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Louisville[] ACE_TIME_PROGMEM = "\x02" "Louisville";

const complete::Info::ZoneInfo kZoneAmerica_Louisville ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Louisville /*name*/,
  0x3dcb47ee /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Kentucky_Louisville /*eras*/,
  &kZoneAmerica_Kentucky_Louisville /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Lower_Princes -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Lower_Princes[] ACE_TIME_PROGMEM = "\x02" "Lower_Princes";

const complete::Info::ZoneInfo kZoneAmerica_Lower_Princes ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Lower_Princes /*name*/,
  0x6ae45b62 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Marigot -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Marigot[] ACE_TIME_PROGMEM = "\x02" "Marigot";

const complete::Info::ZoneInfo kZoneAmerica_Marigot ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Marigot /*name*/,
  0x3dab3a59 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Mendoza -> America/Argentina/Mendoza
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Mendoza[] ACE_TIME_PROGMEM = "\x02" "Mendoza";

const complete::Info::ZoneInfo kZoneAmerica_Mendoza ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Mendoza /*name*/,
  0x46b4e054 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  16 /*numEras*/,
  kZoneEraAmerica_Argentina_Mendoza /*eras*/,
  &kZoneAmerica_Argentina_Mendoza /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Montreal -> America/Toronto
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Montreal[] ACE_TIME_PROGMEM = "\x02" "Montreal";

const complete::Info::ZoneInfo kZoneAmerica_Montreal ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Montreal /*name*/,
  0x203a1ea8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  &kZoneAmerica_Toronto /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Montserrat -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Montserrat[] ACE_TIME_PROGMEM = "\x02" "Montserrat";

const complete::Info::ZoneInfo kZoneAmerica_Montserrat ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Montserrat /*name*/,
  0x199b0a35 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Nassau -> America/Toronto
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Nassau[] ACE_TIME_PROGMEM = "\x02" "Nassau";

const complete::Info::ZoneInfo kZoneAmerica_Nassau ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Nassau /*name*/,
  0xaedef011 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  &kZoneAmerica_Toronto /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Nipigon -> America/Toronto
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Nipigon[] ACE_TIME_PROGMEM = "\x02" "Nipigon";

const complete::Info::ZoneInfo kZoneAmerica_Nipigon ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Nipigon /*name*/,
  0x9d2a8b1a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  &kZoneAmerica_Toronto /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Pangnirtung -> America/Iqaluit
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Pangnirtung[] ACE_TIME_PROGMEM = "\x02" "Pangnirtung";

const complete::Info::ZoneInfo kZoneAmerica_Pangnirtung ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Pangnirtung /*name*/,
  0x2d999193 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Iqaluit /*eras*/,
  &kZoneAmerica_Iqaluit /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Port_of_Spain -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Port_of_Spain[] ACE_TIME_PROGMEM = "\x02" "Port_of_Spain";

const complete::Info::ZoneInfo kZoneAmerica_Port_of_Spain ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Port_of_Spain /*name*/,
  0xd8b28d59 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Porto_Acre -> America/Rio_Branco
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Porto_Acre[] ACE_TIME_PROGMEM = "\x02" "Porto_Acre";

const complete::Info::ZoneInfo kZoneAmerica_Porto_Acre ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Porto_Acre /*name*/,
  0xcce5bf54 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Rio_Branco /*eras*/,
  &kZoneAmerica_Rio_Branco /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Rainy_River -> America/Winnipeg
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Rainy_River[] ACE_TIME_PROGMEM = "\x02" "Rainy_River";

const complete::Info::ZoneInfo kZoneAmerica_Rainy_River ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Rainy_River /*name*/,
  0x9cd58a10 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Winnipeg /*eras*/,
  &kZoneAmerica_Winnipeg /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Rosario -> America/Argentina/Cordoba
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Rosario[] ACE_TIME_PROGMEM = "\x02" "Rosario";

const complete::Info::ZoneInfo kZoneAmerica_Rosario ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Rosario /*name*/,
  0xdf448665 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Argentina_Cordoba /*eras*/,
  &kZoneAmerica_Argentina_Cordoba /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Santa_Isabel -> America/Tijuana
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Santa_Isabel[] ACE_TIME_PROGMEM = "\x02" "Santa_Isabel";

const complete::Info::ZoneInfo kZoneAmerica_Santa_Isabel ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Santa_Isabel /*name*/,
  0xfd18a56c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  25 /*numEras*/,
  kZoneEraAmerica_Tijuana /*eras*/,
  &kZoneAmerica_Tijuana /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Shiprock -> America/Denver
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Shiprock[] ACE_TIME_PROGMEM = "\x02" "Shiprock";

const complete::Info::ZoneInfo kZoneAmerica_Shiprock ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Shiprock /*name*/,
  0x82fb7049 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Denver /*eras*/,
  &kZoneAmerica_Denver /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/St_Barthelemy -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_St_Barthelemy[] ACE_TIME_PROGMEM = "\x02" "St_Barthelemy";

const complete::Info::ZoneInfo kZoneAmerica_St_Barthelemy ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Barthelemy /*name*/,
  0x054e6a79 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/St_Kitts -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_St_Kitts[] ACE_TIME_PROGMEM = "\x02" "St_Kitts";

const complete::Info::ZoneInfo kZoneAmerica_St_Kitts ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Kitts /*name*/,
  0x04c0507b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/St_Lucia -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_St_Lucia[] ACE_TIME_PROGMEM = "\x02" "St_Lucia";

const complete::Info::ZoneInfo kZoneAmerica_St_Lucia ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Lucia /*name*/,
  0x04d8b3ba /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/St_Thomas -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_St_Thomas[] ACE_TIME_PROGMEM = "\x02" "St_Thomas";

const complete::Info::ZoneInfo kZoneAmerica_St_Thomas ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Thomas /*name*/,
  0xb1b3d778 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/St_Vincent -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_St_Vincent[] ACE_TIME_PROGMEM = "\x02" "St_Vincent";

const complete::Info::ZoneInfo kZoneAmerica_St_Vincent ACE_TIME_PROGMEM = {
  kZoneNameAmerica_St_Vincent /*name*/,
  0x8460e523 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Thunder_Bay -> America/Toronto
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Thunder_Bay[] ACE_TIME_PROGMEM = "\x02" "Thunder_Bay";

const complete::Info::ZoneInfo kZoneAmerica_Thunder_Bay ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Thunder_Bay /*name*/,
  0xf962e71b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  &kZoneAmerica_Toronto /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Tortola -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Tortola[] ACE_TIME_PROGMEM = "\x02" "Tortola";

const complete::Info::ZoneInfo kZoneAmerica_Tortola ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Tortola /*name*/,
  0x7931462b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Virgin -> America/Puerto_Rico
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Virgin[] ACE_TIME_PROGMEM = "\x02" "Virgin";

const complete::Info::ZoneInfo kZoneAmerica_Virgin ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Virgin /*name*/,
  0xc2183ab5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Puerto_Rico /*eras*/,
  &kZoneAmerica_Puerto_Rico /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: America/Yellowknife -> America/Edmonton
//---------------------------------------------------------------------------

static const char kZoneNameAmerica_Yellowknife[] ACE_TIME_PROGMEM = "\x02" "Yellowknife";

const complete::Info::ZoneInfo kZoneAmerica_Yellowknife ACE_TIME_PROGMEM = {
  kZoneNameAmerica_Yellowknife /*name*/,
  0x0f76c76f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Edmonton /*eras*/,
  &kZoneAmerica_Edmonton /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Antarctica/DumontDUrville -> Pacific/Port_Moresby
//---------------------------------------------------------------------------

static const char kZoneNameAntarctica_DumontDUrville[] ACE_TIME_PROGMEM = "\x03" "DumontDUrville";

const complete::Info::ZoneInfo kZoneAntarctica_DumontDUrville ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_DumontDUrville /*name*/,
  0x5a3c656c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Port_Moresby /*eras*/,
  &kZonePacific_Port_Moresby /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Antarctica/McMurdo -> Pacific/Auckland
//---------------------------------------------------------------------------

static const char kZoneNameAntarctica_McMurdo[] ACE_TIME_PROGMEM = "\x03" "McMurdo";

const complete::Info::ZoneInfo kZoneAntarctica_McMurdo ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_McMurdo /*name*/,
  0x6eeb5585 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Auckland /*eras*/,
  &kZonePacific_Auckland /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Antarctica/South_Pole -> Pacific/Auckland
//---------------------------------------------------------------------------

static const char kZoneNameAntarctica_South_Pole[] ACE_TIME_PROGMEM = "\x03" "South_Pole";

const complete::Info::ZoneInfo kZoneAntarctica_South_Pole ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_South_Pole /*name*/,
  0xcd96b290 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Auckland /*eras*/,
  &kZonePacific_Auckland /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Antarctica/Syowa -> Asia/Riyadh
//---------------------------------------------------------------------------

static const char kZoneNameAntarctica_Syowa[] ACE_TIME_PROGMEM = "\x03" "Syowa";

const complete::Info::ZoneInfo kZoneAntarctica_Syowa ACE_TIME_PROGMEM = {
  kZoneNameAntarctica_Syowa /*name*/,
  0xe330c7e1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Riyadh /*eras*/,
  &kZoneAsia_Riyadh /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Arctic/Longyearbyen -> Europe/Berlin
//---------------------------------------------------------------------------

static const char kZoneNameArctic_Longyearbyen[] ACE_TIME_PROGMEM = "Arctic/Longyearbyen";

const complete::Info::ZoneInfo kZoneArctic_Longyearbyen ACE_TIME_PROGMEM = {
  kZoneNameArctic_Longyearbyen /*name*/,
  0xd23e7859 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  &kZoneEurope_Berlin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Aden -> Asia/Riyadh
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Aden[] ACE_TIME_PROGMEM = "\x05" "Aden";

const complete::Info::ZoneInfo kZoneAsia_Aden ACE_TIME_PROGMEM = {
  kZoneNameAsia_Aden /*name*/,
  0x1fa7084a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Riyadh /*eras*/,
  &kZoneAsia_Riyadh /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Ashkhabad -> Asia/Ashgabat
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Ashkhabad[] ACE_TIME_PROGMEM = "\x05" "Ashkhabad";

const complete::Info::ZoneInfo kZoneAsia_Ashkhabad ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ashkhabad /*name*/,
  0x15454f09 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Ashgabat /*eras*/,
  &kZoneAsia_Ashgabat /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Bahrain -> Asia/Qatar
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Bahrain[] ACE_TIME_PROGMEM = "\x05" "Bahrain";

const complete::Info::ZoneInfo kZoneAsia_Bahrain ACE_TIME_PROGMEM = {
  kZoneNameAsia_Bahrain /*name*/,
  0x9d078487 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Qatar /*eras*/,
  &kZoneAsia_Qatar /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Brunei -> Asia/Kuching
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Brunei[] ACE_TIME_PROGMEM = "\x05" "Brunei";

const complete::Info::ZoneInfo kZoneAsia_Brunei ACE_TIME_PROGMEM = {
  kZoneNameAsia_Brunei /*name*/,
  0xa8e595f7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Kuching /*eras*/,
  &kZoneAsia_Kuching /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Calcutta -> Asia/Kolkata
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Calcutta[] ACE_TIME_PROGMEM = "\x05" "Calcutta";

const complete::Info::ZoneInfo kZoneAsia_Calcutta ACE_TIME_PROGMEM = {
  kZoneNameAsia_Calcutta /*name*/,
  0x328a44c3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAsia_Kolkata /*eras*/,
  &kZoneAsia_Kolkata /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Choibalsan -> Asia/Ulaanbaatar
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Choibalsan[] ACE_TIME_PROGMEM = "\x05" "Choibalsan";

const complete::Info::ZoneInfo kZoneAsia_Choibalsan ACE_TIME_PROGMEM = {
  kZoneNameAsia_Choibalsan /*name*/,
  0x928aa4a6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Ulaanbaatar /*eras*/,
  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Chongqing -> Asia/Shanghai
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Chongqing[] ACE_TIME_PROGMEM = "\x05" "Chongqing";

const complete::Info::ZoneInfo kZoneAsia_Chongqing ACE_TIME_PROGMEM = {
  kZoneNameAsia_Chongqing /*name*/,
  0xf937fb90 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Shanghai /*eras*/,
  &kZoneAsia_Shanghai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Chungking -> Asia/Shanghai
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Chungking[] ACE_TIME_PROGMEM = "\x05" "Chungking";

const complete::Info::ZoneInfo kZoneAsia_Chungking ACE_TIME_PROGMEM = {
  kZoneNameAsia_Chungking /*name*/,
  0xc7121dd0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Shanghai /*eras*/,
  &kZoneAsia_Shanghai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Dacca -> Asia/Dhaka
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Dacca[] ACE_TIME_PROGMEM = "\x05" "Dacca";

const complete::Info::ZoneInfo kZoneAsia_Dacca ACE_TIME_PROGMEM = {
  kZoneNameAsia_Dacca /*name*/,
  0x14bcac5e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAsia_Dhaka /*eras*/,
  &kZoneAsia_Dhaka /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Harbin -> Asia/Shanghai
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Harbin[] ACE_TIME_PROGMEM = "\x05" "Harbin";

const complete::Info::ZoneInfo kZoneAsia_Harbin ACE_TIME_PROGMEM = {
  kZoneNameAsia_Harbin /*name*/,
  0xb5af1186 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Shanghai /*eras*/,
  &kZoneAsia_Shanghai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Istanbul -> Europe/Istanbul
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Istanbul[] ACE_TIME_PROGMEM = "\x05" "Istanbul";

const complete::Info::ZoneInfo kZoneAsia_Istanbul ACE_TIME_PROGMEM = {
  kZoneNameAsia_Istanbul /*name*/,
  0x382e7894 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraEurope_Istanbul /*eras*/,
  &kZoneEurope_Istanbul /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Kashgar -> Asia/Urumqi
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Kashgar[] ACE_TIME_PROGMEM = "\x05" "Kashgar";

const complete::Info::ZoneInfo kZoneAsia_Kashgar ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kashgar /*name*/,
  0x52955193 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Urumqi /*eras*/,
  &kZoneAsia_Urumqi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Katmandu -> Asia/Kathmandu
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Katmandu[] ACE_TIME_PROGMEM = "\x05" "Katmandu";

const complete::Info::ZoneInfo kZoneAsia_Katmandu ACE_TIME_PROGMEM = {
  kZoneNameAsia_Katmandu /*name*/,
  0xa7ec12c7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Kathmandu /*eras*/,
  &kZoneAsia_Kathmandu /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Kuala_Lumpur -> Asia/Singapore
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Kuala_Lumpur[] ACE_TIME_PROGMEM = "\x05" "Kuala_Lumpur";

const complete::Info::ZoneInfo kZoneAsia_Kuala_Lumpur ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kuala_Lumpur /*name*/,
  0x014763c4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Singapore /*eras*/,
  &kZoneAsia_Singapore /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Kuwait -> Asia/Riyadh
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Kuwait[] ACE_TIME_PROGMEM = "\x05" "Kuwait";

const complete::Info::ZoneInfo kZoneAsia_Kuwait ACE_TIME_PROGMEM = {
  kZoneNameAsia_Kuwait /*name*/,
  0xbe1b2f27 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Riyadh /*eras*/,
  &kZoneAsia_Riyadh /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Macao -> Asia/Macau
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Macao[] ACE_TIME_PROGMEM = "\x05" "Macao";

const complete::Info::ZoneInfo kZoneAsia_Macao ACE_TIME_PROGMEM = {
  kZoneNameAsia_Macao /*name*/,
  0x155f88b3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Macau /*eras*/,
  &kZoneAsia_Macau /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Muscat -> Asia/Dubai
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Muscat[] ACE_TIME_PROGMEM = "\x05" "Muscat";

const complete::Info::ZoneInfo kZoneAsia_Muscat ACE_TIME_PROGMEM = {
  kZoneNameAsia_Muscat /*name*/,
  0xc2c3565f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Dubai /*eras*/,
  &kZoneAsia_Dubai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Phnom_Penh -> Asia/Bangkok
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Phnom_Penh[] ACE_TIME_PROGMEM = "\x05" "Phnom_Penh";

const complete::Info::ZoneInfo kZoneAsia_Phnom_Penh ACE_TIME_PROGMEM = {
  kZoneNameAsia_Phnom_Penh /*name*/,
  0xc224945e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Bangkok /*eras*/,
  &kZoneAsia_Bangkok /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Rangoon -> Asia/Yangon
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Rangoon[] ACE_TIME_PROGMEM = "\x05" "Rangoon";

const complete::Info::ZoneInfo kZoneAsia_Rangoon ACE_TIME_PROGMEM = {
  kZoneNameAsia_Rangoon /*name*/,
  0x6d1217c6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Yangon /*eras*/,
  &kZoneAsia_Yangon /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Saigon -> Asia/Ho_Chi_Minh
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Saigon[] ACE_TIME_PROGMEM = "\x05" "Saigon";

const complete::Info::ZoneInfo kZoneAsia_Saigon ACE_TIME_PROGMEM = {
  kZoneNameAsia_Saigon /*name*/,
  0xcf52f713 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAsia_Ho_Chi_Minh /*eras*/,
  &kZoneAsia_Ho_Chi_Minh /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Tel_Aviv -> Asia/Jerusalem
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Tel_Aviv[] ACE_TIME_PROGMEM = "\x05" "Tel_Aviv";

const complete::Info::ZoneInfo kZoneAsia_Tel_Aviv ACE_TIME_PROGMEM = {
  kZoneNameAsia_Tel_Aviv /*name*/,
  0x166d7c2c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Jerusalem /*eras*/,
  &kZoneAsia_Jerusalem /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Thimbu -> Asia/Thimphu
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Thimbu[] ACE_TIME_PROGMEM = "\x05" "Thimbu";

const complete::Info::ZoneInfo kZoneAsia_Thimbu ACE_TIME_PROGMEM = {
  kZoneNameAsia_Thimbu /*name*/,
  0xd226e31b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Thimphu /*eras*/,
  &kZoneAsia_Thimphu /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Ujung_Pandang -> Asia/Makassar
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Ujung_Pandang[] ACE_TIME_PROGMEM = "\x05" "Ujung_Pandang";

const complete::Info::ZoneInfo kZoneAsia_Ujung_Pandang ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ujung_Pandang /*name*/,
  0x5d001eb3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Makassar /*eras*/,
  &kZoneAsia_Makassar /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Ulan_Bator -> Asia/Ulaanbaatar
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Ulan_Bator[] ACE_TIME_PROGMEM = "\x05" "Ulan_Bator";

const complete::Info::ZoneInfo kZoneAsia_Ulan_Bator ACE_TIME_PROGMEM = {
  kZoneNameAsia_Ulan_Bator /*name*/,
  0x394db4d9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Ulaanbaatar /*eras*/,
  &kZoneAsia_Ulaanbaatar /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Asia/Vientiane -> Asia/Bangkok
//---------------------------------------------------------------------------

static const char kZoneNameAsia_Vientiane[] ACE_TIME_PROGMEM = "\x05" "Vientiane";

const complete::Info::ZoneInfo kZoneAsia_Vientiane ACE_TIME_PROGMEM = {
  kZoneNameAsia_Vientiane /*name*/,
  0x89d68d75 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Bangkok /*eras*/,
  &kZoneAsia_Bangkok /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Atlantic/Faeroe -> Atlantic/Faroe
//---------------------------------------------------------------------------

static const char kZoneNameAtlantic_Faeroe[] ACE_TIME_PROGMEM = "\x06" "Faeroe";

const complete::Info::ZoneInfo kZoneAtlantic_Faeroe ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Faeroe /*name*/,
  0x031ec516 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAtlantic_Faroe /*eras*/,
  &kZoneAtlantic_Faroe /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Atlantic/Jan_Mayen -> Europe/Berlin
//---------------------------------------------------------------------------

static const char kZoneNameAtlantic_Jan_Mayen[] ACE_TIME_PROGMEM = "\x06" "Jan_Mayen";

const complete::Info::ZoneInfo kZoneAtlantic_Jan_Mayen ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Jan_Mayen /*name*/,
  0x5a7535b6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  &kZoneEurope_Berlin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Atlantic/Reykjavik -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAtlantic_Reykjavik[] ACE_TIME_PROGMEM = "\x06" "Reykjavik";

const complete::Info::ZoneInfo kZoneAtlantic_Reykjavik ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_Reykjavik /*name*/,
  0x1c2b4f74 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Atlantic/St_Helena -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameAtlantic_St_Helena[] ACE_TIME_PROGMEM = "\x06" "St_Helena";

const complete::Info::ZoneInfo kZoneAtlantic_St_Helena ACE_TIME_PROGMEM = {
  kZoneNameAtlantic_St_Helena /*name*/,
  0x451fc5f7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/ACT -> Australia/Sydney
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_ACT[] ACE_TIME_PROGMEM = "\x07" "ACT";

const complete::Info::ZoneInfo kZoneAustralia_ACT ACE_TIME_PROGMEM = {
  kZoneNameAustralia_ACT /*name*/,
  0x8a970eb2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Sydney /*eras*/,
  &kZoneAustralia_Sydney /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Canberra -> Australia/Sydney
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Canberra[] ACE_TIME_PROGMEM = "\x07" "Canberra";

const complete::Info::ZoneInfo kZoneAustralia_Canberra ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Canberra /*name*/,
  0x2a09ae58 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Sydney /*eras*/,
  &kZoneAustralia_Sydney /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Currie -> Australia/Hobart
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Currie[] ACE_TIME_PROGMEM = "\x07" "Currie";

const complete::Info::ZoneInfo kZoneAustralia_Currie ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Currie /*name*/,
  0x278b6a24 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Hobart /*eras*/,
  &kZoneAustralia_Hobart /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/LHI -> Australia/Lord_Howe
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_LHI[] ACE_TIME_PROGMEM = "\x07" "LHI";

const complete::Info::ZoneInfo kZoneAustralia_LHI ACE_TIME_PROGMEM = {
  kZoneNameAustralia_LHI /*name*/,
  0x8a973e17 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Lord_Howe /*eras*/,
  &kZoneAustralia_Lord_Howe /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/NSW -> Australia/Sydney
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_NSW[] ACE_TIME_PROGMEM = "\x07" "NSW";

const complete::Info::ZoneInfo kZoneAustralia_NSW ACE_TIME_PROGMEM = {
  kZoneNameAustralia_NSW /*name*/,
  0x8a974812 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Sydney /*eras*/,
  &kZoneAustralia_Sydney /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/North -> Australia/Darwin
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_North[] ACE_TIME_PROGMEM = "\x07" "North";

const complete::Info::ZoneInfo kZoneAustralia_North ACE_TIME_PROGMEM = {
  kZoneNameAustralia_North /*name*/,
  0x8d997165 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Darwin /*eras*/,
  &kZoneAustralia_Darwin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Queensland -> Australia/Brisbane
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Queensland[] ACE_TIME_PROGMEM = "\x07" "Queensland";

const complete::Info::ZoneInfo kZoneAustralia_Queensland ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Queensland /*name*/,
  0xd326ed0a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Brisbane /*eras*/,
  &kZoneAustralia_Brisbane /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/South -> Australia/Adelaide
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_South[] ACE_TIME_PROGMEM = "\x07" "South";

const complete::Info::ZoneInfo kZoneAustralia_South ACE_TIME_PROGMEM = {
  kZoneNameAustralia_South /*name*/,
  0x8df3f8ad /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Adelaide /*eras*/,
  &kZoneAustralia_Adelaide /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Tasmania -> Australia/Hobart
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Tasmania[] ACE_TIME_PROGMEM = "\x07" "Tasmania";

const complete::Info::ZoneInfo kZoneAustralia_Tasmania ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Tasmania /*name*/,
  0xe6d76648 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAustralia_Hobart /*eras*/,
  &kZoneAustralia_Hobart /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Victoria -> Australia/Melbourne
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Victoria[] ACE_TIME_PROGMEM = "\x07" "Victoria";

const complete::Info::ZoneInfo kZoneAustralia_Victoria ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Victoria /*name*/,
  0x0260d5db /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Melbourne /*eras*/,
  &kZoneAustralia_Melbourne /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/West -> Australia/Perth
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_West[] ACE_TIME_PROGMEM = "\x07" "West";

const complete::Info::ZoneInfo kZoneAustralia_West ACE_TIME_PROGMEM = {
  kZoneNameAustralia_West /*name*/,
  0xdd858a5d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAustralia_Perth /*eras*/,
  &kZoneAustralia_Perth /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Australia/Yancowinna -> Australia/Broken_Hill
//---------------------------------------------------------------------------

static const char kZoneNameAustralia_Yancowinna[] ACE_TIME_PROGMEM = "\x07" "Yancowinna";

const complete::Info::ZoneInfo kZoneAustralia_Yancowinna ACE_TIME_PROGMEM = {
  kZoneNameAustralia_Yancowinna /*name*/,
  0x90bac131 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAustralia_Broken_Hill /*eras*/,
  &kZoneAustralia_Broken_Hill /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Brazil/Acre -> America/Rio_Branco
//---------------------------------------------------------------------------

static const char kZoneNameBrazil_Acre[] ACE_TIME_PROGMEM = "\x08" "Acre";

const complete::Info::ZoneInfo kZoneBrazil_Acre ACE_TIME_PROGMEM = {
  kZoneNameBrazil_Acre /*name*/,
  0x66934f93 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Rio_Branco /*eras*/,
  &kZoneAmerica_Rio_Branco /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Brazil/DeNoronha -> America/Noronha
//---------------------------------------------------------------------------

static const char kZoneNameBrazil_DeNoronha[] ACE_TIME_PROGMEM = "\x08" "DeNoronha";

const complete::Info::ZoneInfo kZoneBrazil_DeNoronha ACE_TIME_PROGMEM = {
  kZoneNameBrazil_DeNoronha /*name*/,
  0x9b4cb496 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Noronha /*eras*/,
  &kZoneAmerica_Noronha /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Brazil/East -> America/Sao_Paulo
//---------------------------------------------------------------------------

static const char kZoneNameBrazil_East[] ACE_TIME_PROGMEM = "\x08" "East";

const complete::Info::ZoneInfo kZoneBrazil_East ACE_TIME_PROGMEM = {
  kZoneNameBrazil_East /*name*/,
  0x669578c5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Sao_Paulo /*eras*/,
  &kZoneAmerica_Sao_Paulo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Brazil/West -> America/Manaus
//---------------------------------------------------------------------------

static const char kZoneNameBrazil_West[] ACE_TIME_PROGMEM = "\x08" "West";

const complete::Info::ZoneInfo kZoneBrazil_West ACE_TIME_PROGMEM = {
  kZoneNameBrazil_West /*name*/,
  0x669f689b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Manaus /*eras*/,
  &kZoneAmerica_Manaus /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: CET -> Europe/Brussels
//---------------------------------------------------------------------------

static const char kZoneNameCET[] ACE_TIME_PROGMEM = "CET";

const complete::Info::ZoneInfo kZoneCET ACE_TIME_PROGMEM = {
  kZoneNameCET /*name*/,
  0x0b87d921 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Brussels /*eras*/,
  &kZoneEurope_Brussels /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: CST6CDT -> America/Chicago
//---------------------------------------------------------------------------

static const char kZoneNameCST6CDT[] ACE_TIME_PROGMEM = "CST6CDT";

const complete::Info::ZoneInfo kZoneCST6CDT ACE_TIME_PROGMEM = {
  kZoneNameCST6CDT /*name*/,
  0xf0e87d00 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Chicago /*eras*/,
  &kZoneAmerica_Chicago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Atlantic -> America/Halifax
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Atlantic[] ACE_TIME_PROGMEM = "\x09" "Atlantic";

const complete::Info::ZoneInfo kZoneCanada_Atlantic ACE_TIME_PROGMEM = {
  kZoneNameCanada_Atlantic /*name*/,
  0x536b119c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Halifax /*eras*/,
  &kZoneAmerica_Halifax /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Central -> America/Winnipeg
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Central[] ACE_TIME_PROGMEM = "\x09" "Central";

const complete::Info::ZoneInfo kZoneCanada_Central ACE_TIME_PROGMEM = {
  kZoneNameCanada_Central /*name*/,
  0x626710f5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Winnipeg /*eras*/,
  &kZoneAmerica_Winnipeg /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Eastern -> America/Toronto
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Eastern[] ACE_TIME_PROGMEM = "\x09" "Eastern";

const complete::Info::ZoneInfo kZoneCanada_Eastern ACE_TIME_PROGMEM = {
  kZoneNameCanada_Eastern /*name*/,
  0xf3612d5e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Toronto /*eras*/,
  &kZoneAmerica_Toronto /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Mountain -> America/Edmonton
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Mountain[] ACE_TIME_PROGMEM = "\x09" "Mountain";

const complete::Info::ZoneInfo kZoneCanada_Mountain ACE_TIME_PROGMEM = {
  kZoneNameCanada_Mountain /*name*/,
  0xfb8a8217 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Edmonton /*eras*/,
  &kZoneAmerica_Edmonton /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Newfoundland -> America/St_Johns
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Newfoundland[] ACE_TIME_PROGMEM = "\x09" "Newfoundland";

const complete::Info::ZoneInfo kZoneCanada_Newfoundland ACE_TIME_PROGMEM = {
  kZoneNameCanada_Newfoundland /*name*/,
  0xb396e991 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_St_Johns /*eras*/,
  &kZoneAmerica_St_Johns /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Pacific -> America/Vancouver
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Pacific[] ACE_TIME_PROGMEM = "\x09" "Pacific";

const complete::Info::ZoneInfo kZoneCanada_Pacific ACE_TIME_PROGMEM = {
  kZoneNameCanada_Pacific /*name*/,
  0x40fa3c7b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Vancouver /*eras*/,
  &kZoneAmerica_Vancouver /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Saskatchewan -> America/Regina
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Saskatchewan[] ACE_TIME_PROGMEM = "\x09" "Saskatchewan";

const complete::Info::ZoneInfo kZoneCanada_Saskatchewan ACE_TIME_PROGMEM = {
  kZoneNameCanada_Saskatchewan /*name*/,
  0x77311f49 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Regina /*eras*/,
  &kZoneAmerica_Regina /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Canada/Yukon -> America/Whitehorse
//---------------------------------------------------------------------------

static const char kZoneNameCanada_Yukon[] ACE_TIME_PROGMEM = "\x09" "Yukon";

const complete::Info::ZoneInfo kZoneCanada_Yukon ACE_TIME_PROGMEM = {
  kZoneNameCanada_Yukon /*name*/,
  0x78dd35c2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Whitehorse /*eras*/,
  &kZoneAmerica_Whitehorse /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Chile/Continental -> America/Santiago
//---------------------------------------------------------------------------

static const char kZoneNameChile_Continental[] ACE_TIME_PROGMEM = "Chile/Continental";

const complete::Info::ZoneInfo kZoneChile_Continental ACE_TIME_PROGMEM = {
  kZoneNameChile_Continental /*name*/,
  0x7e2bdb18 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  14 /*numEras*/,
  kZoneEraAmerica_Santiago /*eras*/,
  &kZoneAmerica_Santiago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Chile/EasterIsland -> Pacific/Easter
//---------------------------------------------------------------------------

static const char kZoneNameChile_EasterIsland[] ACE_TIME_PROGMEM = "Chile/EasterIsland";

const complete::Info::ZoneInfo kZoneChile_EasterIsland ACE_TIME_PROGMEM = {
  kZoneNameChile_EasterIsland /*name*/,
  0xb0982af8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Easter /*eras*/,
  &kZonePacific_Easter /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Cuba -> America/Havana
//---------------------------------------------------------------------------

static const char kZoneNameCuba[] ACE_TIME_PROGMEM = "Cuba";

const complete::Info::ZoneInfo kZoneCuba ACE_TIME_PROGMEM = {
  kZoneNameCuba /*name*/,
  0x7c83cba0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Havana /*eras*/,
  &kZoneAmerica_Havana /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: EET -> Europe/Athens
//---------------------------------------------------------------------------

static const char kZoneNameEET[] ACE_TIME_PROGMEM = "EET";

const complete::Info::ZoneInfo kZoneEET ACE_TIME_PROGMEM = {
  kZoneNameEET /*name*/,
  0x0b87e1a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Athens /*eras*/,
  &kZoneEurope_Athens /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: EST -> America/Panama
//---------------------------------------------------------------------------

static const char kZoneNameEST[] ACE_TIME_PROGMEM = "EST";

const complete::Info::ZoneInfo kZoneEST ACE_TIME_PROGMEM = {
  kZoneNameEST /*name*/,
  0x0b87e371 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAmerica_Panama /*eras*/,
  &kZoneAmerica_Panama /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: EST5EDT -> America/New_York
//---------------------------------------------------------------------------

static const char kZoneNameEST5EDT[] ACE_TIME_PROGMEM = "EST5EDT";

const complete::Info::ZoneInfo kZoneEST5EDT ACE_TIME_PROGMEM = {
  kZoneNameEST5EDT /*name*/,
  0x8adc72a3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_New_York /*eras*/,
  &kZoneAmerica_New_York /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Egypt -> Africa/Cairo
//---------------------------------------------------------------------------

static const char kZoneNameEgypt[] ACE_TIME_PROGMEM = "Egypt";

const complete::Info::ZoneInfo kZoneEgypt ACE_TIME_PROGMEM = {
  kZoneNameEgypt /*name*/,
  0x0d1a278e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Cairo /*eras*/,
  &kZoneAfrica_Cairo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Eire -> Europe/Dublin
//---------------------------------------------------------------------------

static const char kZoneNameEire[] ACE_TIME_PROGMEM = "Eire";

const complete::Info::ZoneInfo kZoneEire ACE_TIME_PROGMEM = {
  kZoneNameEire /*name*/,
  0x7c84b36a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraEurope_Dublin /*eras*/,
  &kZoneEurope_Dublin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/GMT+0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameEtc_GMT_PLUS_0[] ACE_TIME_PROGMEM = "\x0a" "GMT+0";

const complete::Info::ZoneInfo kZoneEtc_GMT_PLUS_0 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_PLUS_0 /*name*/,
  0x9d13da13 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/GMT-0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameEtc_GMT_0[] ACE_TIME_PROGMEM = "\x0a" "GMT-0";

const complete::Info::ZoneInfo kZoneEtc_GMT_0 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT_0 /*name*/,
  0x9d13da55 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/GMT0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameEtc_GMT0[] ACE_TIME_PROGMEM = "\x0a" "GMT0";

const complete::Info::ZoneInfo kZoneEtc_GMT0 ACE_TIME_PROGMEM = {
  kZoneNameEtc_GMT0 /*name*/,
  0xf53ea988 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/Greenwich -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameEtc_Greenwich[] ACE_TIME_PROGMEM = "\x0a" "Greenwich";

const complete::Info::ZoneInfo kZoneEtc_Greenwich ACE_TIME_PROGMEM = {
  kZoneNameEtc_Greenwich /*name*/,
  0x26daa98c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/UCT -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameEtc_UCT[] ACE_TIME_PROGMEM = "\x0a" "UCT";

const complete::Info::ZoneInfo kZoneEtc_UCT ACE_TIME_PROGMEM = {
  kZoneNameEtc_UCT /*name*/,
  0xd8e3189c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/Universal -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameEtc_Universal[] ACE_TIME_PROGMEM = "\x0a" "Universal";

const complete::Info::ZoneInfo kZoneEtc_Universal ACE_TIME_PROGMEM = {
  kZoneNameEtc_Universal /*name*/,
  0x2f8cb9a9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Etc/Zulu -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameEtc_Zulu[] ACE_TIME_PROGMEM = "\x0a" "Zulu";

const complete::Info::ZoneInfo kZoneEtc_Zulu ACE_TIME_PROGMEM = {
  kZoneNameEtc_Zulu /*name*/,
  0xf549c240 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Amsterdam -> Europe/Brussels
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Amsterdam[] ACE_TIME_PROGMEM = "\x0b" "Amsterdam";

const complete::Info::ZoneInfo kZoneEurope_Amsterdam ACE_TIME_PROGMEM = {
  kZoneNameEurope_Amsterdam /*name*/,
  0x109395c2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Brussels /*eras*/,
  &kZoneEurope_Brussels /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Belfast -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Belfast[] ACE_TIME_PROGMEM = "\x0b" "Belfast";

const complete::Info::ZoneInfo kZoneEurope_Belfast ACE_TIME_PROGMEM = {
  kZoneNameEurope_Belfast /*name*/,
  0xd07dd1e5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Bratislava -> Europe/Prague
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Bratislava[] ACE_TIME_PROGMEM = "\x0b" "Bratislava";

const complete::Info::ZoneInfo kZoneEurope_Bratislava ACE_TIME_PROGMEM = {
  kZoneNameEurope_Bratislava /*name*/,
  0xda493bed /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Prague /*eras*/,
  &kZoneEurope_Prague /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Busingen -> Europe/Zurich
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Busingen[] ACE_TIME_PROGMEM = "\x0b" "Busingen";

const complete::Info::ZoneInfo kZoneEurope_Busingen ACE_TIME_PROGMEM = {
  kZoneNameEurope_Busingen /*name*/,
  0xc06d2cdf /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Zurich /*eras*/,
  &kZoneEurope_Zurich /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Copenhagen -> Europe/Berlin
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Copenhagen[] ACE_TIME_PROGMEM = "\x0b" "Copenhagen";

const complete::Info::ZoneInfo kZoneEurope_Copenhagen ACE_TIME_PROGMEM = {
  kZoneNameEurope_Copenhagen /*name*/,
  0xe0ed30bc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  &kZoneEurope_Berlin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Guernsey -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Guernsey[] ACE_TIME_PROGMEM = "\x0b" "Guernsey";

const complete::Info::ZoneInfo kZoneEurope_Guernsey ACE_TIME_PROGMEM = {
  kZoneNameEurope_Guernsey /*name*/,
  0x3db12c16 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Isle_of_Man -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Isle_of_Man[] ACE_TIME_PROGMEM = "\x0b" "Isle_of_Man";

const complete::Info::ZoneInfo kZoneEurope_Isle_of_Man ACE_TIME_PROGMEM = {
  kZoneNameEurope_Isle_of_Man /*name*/,
  0xeaf84580 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Jersey -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Jersey[] ACE_TIME_PROGMEM = "\x0b" "Jersey";

const complete::Info::ZoneInfo kZoneEurope_Jersey ACE_TIME_PROGMEM = {
  kZoneNameEurope_Jersey /*name*/,
  0x570dae76 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Kiev -> Europe/Kyiv
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Kiev[] ACE_TIME_PROGMEM = "\x0b" "Kiev";

const complete::Info::ZoneInfo kZoneEurope_Kiev ACE_TIME_PROGMEM = {
  kZoneNameEurope_Kiev /*name*/,
  0xa2c19eb3 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Kyiv /*eras*/,
  &kZoneEurope_Kyiv /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Ljubljana -> Europe/Belgrade
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Ljubljana[] ACE_TIME_PROGMEM = "\x0b" "Ljubljana";

const complete::Info::ZoneInfo kZoneEurope_Ljubljana ACE_TIME_PROGMEM = {
  kZoneNameEurope_Ljubljana /*name*/,
  0xbd98cdb7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  &kZoneEurope_Belgrade /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Luxembourg -> Europe/Brussels
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Luxembourg[] ACE_TIME_PROGMEM = "\x0b" "Luxembourg";

const complete::Info::ZoneInfo kZoneEurope_Luxembourg ACE_TIME_PROGMEM = {
  kZoneNameEurope_Luxembourg /*name*/,
  0x1f8bc6ce /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Brussels /*eras*/,
  &kZoneEurope_Brussels /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Mariehamn -> Europe/Helsinki
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Mariehamn[] ACE_TIME_PROGMEM = "\x0b" "Mariehamn";

const complete::Info::ZoneInfo kZoneEurope_Mariehamn ACE_TIME_PROGMEM = {
  kZoneNameEurope_Mariehamn /*name*/,
  0x0caa6496 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Helsinki /*eras*/,
  &kZoneEurope_Helsinki /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Monaco -> Europe/Paris
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Monaco[] ACE_TIME_PROGMEM = "\x0b" "Monaco";

const complete::Info::ZoneInfo kZoneEurope_Monaco ACE_TIME_PROGMEM = {
  kZoneNameEurope_Monaco /*name*/,
  0x5ebf9f01 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Paris /*eras*/,
  &kZoneEurope_Paris /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Nicosia -> Asia/Nicosia
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Nicosia[] ACE_TIME_PROGMEM = "\x0b" "Nicosia";

const complete::Info::ZoneInfo kZoneEurope_Nicosia ACE_TIME_PROGMEM = {
  kZoneNameEurope_Nicosia /*name*/,
  0x74efab8a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Nicosia /*eras*/,
  &kZoneAsia_Nicosia /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Oslo -> Europe/Berlin
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Oslo[] ACE_TIME_PROGMEM = "\x0b" "Oslo";

const complete::Info::ZoneInfo kZoneEurope_Oslo ACE_TIME_PROGMEM = {
  kZoneNameEurope_Oslo /*name*/,
  0xa2c3fba1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  &kZoneEurope_Berlin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Podgorica -> Europe/Belgrade
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Podgorica[] ACE_TIME_PROGMEM = "\x0b" "Podgorica";

const complete::Info::ZoneInfo kZoneEurope_Podgorica ACE_TIME_PROGMEM = {
  kZoneNameEurope_Podgorica /*name*/,
  0x1c1a499c /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  &kZoneEurope_Belgrade /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/San_Marino -> Europe/Rome
//---------------------------------------------------------------------------

static const char kZoneNameEurope_San_Marino[] ACE_TIME_PROGMEM = "\x0b" "San_Marino";

const complete::Info::ZoneInfo kZoneEurope_San_Marino ACE_TIME_PROGMEM = {
  kZoneNameEurope_San_Marino /*name*/,
  0xcef7724b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Rome /*eras*/,
  &kZoneEurope_Rome /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Sarajevo -> Europe/Belgrade
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Sarajevo[] ACE_TIME_PROGMEM = "\x0b" "Sarajevo";

const complete::Info::ZoneInfo kZoneEurope_Sarajevo ACE_TIME_PROGMEM = {
  kZoneNameEurope_Sarajevo /*name*/,
  0x6a576c3f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  &kZoneEurope_Belgrade /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Skopje -> Europe/Belgrade
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Skopje[] ACE_TIME_PROGMEM = "\x0b" "Skopje";

const complete::Info::ZoneInfo kZoneEurope_Skopje ACE_TIME_PROGMEM = {
  kZoneNameEurope_Skopje /*name*/,
  0x6c76fdd0 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  &kZoneEurope_Belgrade /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Stockholm -> Europe/Berlin
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Stockholm[] ACE_TIME_PROGMEM = "\x0b" "Stockholm";

const complete::Info::ZoneInfo kZoneEurope_Stockholm ACE_TIME_PROGMEM = {
  kZoneNameEurope_Stockholm /*name*/,
  0x5bf6fbb8 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_Berlin /*eras*/,
  &kZoneEurope_Berlin /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Tiraspol -> Europe/Chisinau
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Tiraspol[] ACE_TIME_PROGMEM = "\x0b" "Tiraspol";

const complete::Info::ZoneInfo kZoneEurope_Tiraspol ACE_TIME_PROGMEM = {
  kZoneNameEurope_Tiraspol /*name*/,
  0xbe704472 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraEurope_Chisinau /*eras*/,
  &kZoneEurope_Chisinau /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Uzhgorod -> Europe/Kyiv
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Uzhgorod[] ACE_TIME_PROGMEM = "\x0b" "Uzhgorod";

const complete::Info::ZoneInfo kZoneEurope_Uzhgorod ACE_TIME_PROGMEM = {
  kZoneNameEurope_Uzhgorod /*name*/,
  0xb066f5d6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Kyiv /*eras*/,
  &kZoneEurope_Kyiv /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Vaduz -> Europe/Zurich
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Vaduz[] ACE_TIME_PROGMEM = "\x0b" "Vaduz";

const complete::Info::ZoneInfo kZoneEurope_Vaduz ACE_TIME_PROGMEM = {
  kZoneNameEurope_Vaduz /*name*/,
  0xfbb81bae /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraEurope_Zurich /*eras*/,
  &kZoneEurope_Zurich /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Vatican -> Europe/Rome
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Vatican[] ACE_TIME_PROGMEM = "\x0b" "Vatican";

const complete::Info::ZoneInfo kZoneEurope_Vatican ACE_TIME_PROGMEM = {
  kZoneNameEurope_Vatican /*name*/,
  0xcb485dca /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraEurope_Rome /*eras*/,
  &kZoneEurope_Rome /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Zagreb -> Europe/Belgrade
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Zagreb[] ACE_TIME_PROGMEM = "\x0b" "Zagreb";

const complete::Info::ZoneInfo kZoneEurope_Zagreb ACE_TIME_PROGMEM = {
  kZoneNameEurope_Zagreb /*name*/,
  0x7c11c9ff /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraEurope_Belgrade /*eras*/,
  &kZoneEurope_Belgrade /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Europe/Zaporozhye -> Europe/Kyiv
//---------------------------------------------------------------------------

static const char kZoneNameEurope_Zaporozhye[] ACE_TIME_PROGMEM = "\x0b" "Zaporozhye";

const complete::Info::ZoneInfo kZoneEurope_Zaporozhye ACE_TIME_PROGMEM = {
  kZoneNameEurope_Zaporozhye /*name*/,
  0xeab9767f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Kyiv /*eras*/,
  &kZoneEurope_Kyiv /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GB -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameGB[] ACE_TIME_PROGMEM = "GB";

const complete::Info::ZoneInfo kZoneGB ACE_TIME_PROGMEM = {
  kZoneNameGB /*name*/,
  0x005973ae /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GB-Eire -> Europe/London
//---------------------------------------------------------------------------

static const char kZoneNameGB_Eire[] ACE_TIME_PROGMEM = "GB-Eire";

const complete::Info::ZoneInfo kZoneGB_Eire ACE_TIME_PROGMEM = {
  kZoneNameGB_Eire /*name*/,
  0xfa70e300 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraEurope_London /*eras*/,
  &kZoneEurope_London /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GMT -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameGMT[] ACE_TIME_PROGMEM = "GMT";

const complete::Info::ZoneInfo kZoneGMT ACE_TIME_PROGMEM = {
  kZoneNameGMT /*name*/,
  0x0b87eb2d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GMT+0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameGMT_PLUS_0[] ACE_TIME_PROGMEM = "GMT+0";

const complete::Info::ZoneInfo kZoneGMT_PLUS_0 ACE_TIME_PROGMEM = {
  kZoneNameGMT_PLUS_0 /*name*/,
  0x0d2f7028 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GMT-0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameGMT_0[] ACE_TIME_PROGMEM = "GMT-0";

const complete::Info::ZoneInfo kZoneGMT_0 ACE_TIME_PROGMEM = {
  kZoneNameGMT_0 /*name*/,
  0x0d2f706a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: GMT0 -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameGMT0[] ACE_TIME_PROGMEM = "GMT0";

const complete::Info::ZoneInfo kZoneGMT0 ACE_TIME_PROGMEM = {
  kZoneNameGMT0 /*name*/,
  0x7c8550fd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Greenwich -> Etc/GMT
//---------------------------------------------------------------------------

static const char kZoneNameGreenwich[] ACE_TIME_PROGMEM = "Greenwich";

const complete::Info::ZoneInfo kZoneGreenwich ACE_TIME_PROGMEM = {
  kZoneNameGreenwich /*name*/,
  0xc84d4221 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_GMT /*eras*/,
  &kZoneEtc_GMT /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: HST -> Pacific/Honolulu
//---------------------------------------------------------------------------

static const char kZoneNameHST[] ACE_TIME_PROGMEM = "HST";

const complete::Info::ZoneInfo kZoneHST ACE_TIME_PROGMEM = {
  kZoneNameHST /*name*/,
  0x0b87f034 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Honolulu /*eras*/,
  &kZonePacific_Honolulu /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Hongkong -> Asia/Hong_Kong
//---------------------------------------------------------------------------

static const char kZoneNameHongkong[] ACE_TIME_PROGMEM = "Hongkong";

const complete::Info::ZoneInfo kZoneHongkong ACE_TIME_PROGMEM = {
  kZoneNameHongkong /*name*/,
  0x56d36560 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Hong_Kong /*eras*/,
  &kZoneAsia_Hong_Kong /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Iceland -> Africa/Abidjan
//---------------------------------------------------------------------------

static const char kZoneNameIceland[] ACE_TIME_PROGMEM = "Iceland";

const complete::Info::ZoneInfo kZoneIceland ACE_TIME_PROGMEM = {
  kZoneNameIceland /*name*/,
  0xe56a35b5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAfrica_Abidjan /*eras*/,
  &kZoneAfrica_Abidjan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Antananarivo -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Antananarivo[] ACE_TIME_PROGMEM = "\x0c" "Antananarivo";

const complete::Info::ZoneInfo kZoneIndian_Antananarivo ACE_TIME_PROGMEM = {
  kZoneNameIndian_Antananarivo /*name*/,
  0x9ebf5289 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Christmas -> Asia/Bangkok
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Christmas[] ACE_TIME_PROGMEM = "\x0c" "Christmas";

const complete::Info::ZoneInfo kZoneIndian_Christmas ACE_TIME_PROGMEM = {
  kZoneNameIndian_Christmas /*name*/,
  0x68c207d5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Bangkok /*eras*/,
  &kZoneAsia_Bangkok /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Cocos -> Asia/Yangon
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Cocos[] ACE_TIME_PROGMEM = "\x0c" "Cocos";

const complete::Info::ZoneInfo kZoneIndian_Cocos ACE_TIME_PROGMEM = {
  kZoneNameIndian_Cocos /*name*/,
  0x021e86de /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Yangon /*eras*/,
  &kZoneAsia_Yangon /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Comoro -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Comoro[] ACE_TIME_PROGMEM = "\x0c" "Comoro";

const complete::Info::ZoneInfo kZoneIndian_Comoro ACE_TIME_PROGMEM = {
  kZoneNameIndian_Comoro /*name*/,
  0x45f4deb6 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Kerguelen -> Indian/Maldives
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Kerguelen[] ACE_TIME_PROGMEM = "\x0c" "Kerguelen";

const complete::Info::ZoneInfo kZoneIndian_Kerguelen ACE_TIME_PROGMEM = {
  kZoneNameIndian_Kerguelen /*name*/,
  0x4351b389 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraIndian_Maldives /*eras*/,
  &kZoneIndian_Maldives /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Mahe -> Asia/Dubai
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Mahe[] ACE_TIME_PROGMEM = "\x0c" "Mahe";

const complete::Info::ZoneInfo kZoneIndian_Mahe ACE_TIME_PROGMEM = {
  kZoneNameIndian_Mahe /*name*/,
  0x45e725e2 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Dubai /*eras*/,
  &kZoneAsia_Dubai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Mayotte -> Africa/Nairobi
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Mayotte[] ACE_TIME_PROGMEM = "\x0c" "Mayotte";

const complete::Info::ZoneInfo kZoneIndian_Mayotte ACE_TIME_PROGMEM = {
  kZoneNameIndian_Mayotte /*name*/,
  0xe6880bca /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAfrica_Nairobi /*eras*/,
  &kZoneAfrica_Nairobi /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Indian/Reunion -> Asia/Dubai
//---------------------------------------------------------------------------

static const char kZoneNameIndian_Reunion[] ACE_TIME_PROGMEM = "\x0c" "Reunion";

const complete::Info::ZoneInfo kZoneIndian_Reunion ACE_TIME_PROGMEM = {
  kZoneNameIndian_Reunion /*name*/,
  0x7076c047 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Dubai /*eras*/,
  &kZoneAsia_Dubai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Iran -> Asia/Tehran
//---------------------------------------------------------------------------

static const char kZoneNameIran[] ACE_TIME_PROGMEM = "Iran";

const complete::Info::ZoneInfo kZoneIran ACE_TIME_PROGMEM = {
  kZoneNameIran /*name*/,
  0x7c87090f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAsia_Tehran /*eras*/,
  &kZoneAsia_Tehran /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Israel -> Asia/Jerusalem
//---------------------------------------------------------------------------

static const char kZoneNameIsrael[] ACE_TIME_PROGMEM = "Israel";

const complete::Info::ZoneInfo kZoneIsrael ACE_TIME_PROGMEM = {
  kZoneNameIsrael /*name*/,
  0xba88c9e5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Jerusalem /*eras*/,
  &kZoneAsia_Jerusalem /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Jamaica -> America/Jamaica
//---------------------------------------------------------------------------

static const char kZoneNameJamaica[] ACE_TIME_PROGMEM = "Jamaica";

const complete::Info::ZoneInfo kZoneJamaica ACE_TIME_PROGMEM = {
  kZoneNameJamaica /*name*/,
  0x2e44fdab /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraAmerica_Jamaica /*eras*/,
  &kZoneAmerica_Jamaica /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Japan -> Asia/Tokyo
//---------------------------------------------------------------------------

static const char kZoneNameJapan[] ACE_TIME_PROGMEM = "Japan";

const complete::Info::ZoneInfo kZoneJapan ACE_TIME_PROGMEM = {
  kZoneNameJapan /*name*/,
  0x0d712f8f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraAsia_Tokyo /*eras*/,
  &kZoneAsia_Tokyo /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Kwajalein -> Pacific/Kwajalein
//---------------------------------------------------------------------------

static const char kZoneNameKwajalein[] ACE_TIME_PROGMEM = "Kwajalein";

const complete::Info::ZoneInfo kZoneKwajalein ACE_TIME_PROGMEM = {
  kZoneNameKwajalein /*name*/,
  0x0e57afbb /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraPacific_Kwajalein /*eras*/,
  &kZonePacific_Kwajalein /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Libya -> Africa/Tripoli
//---------------------------------------------------------------------------

static const char kZoneNameLibya[] ACE_TIME_PROGMEM = "Libya";

const complete::Info::ZoneInfo kZoneLibya ACE_TIME_PROGMEM = {
  kZoneNameLibya /*name*/,
  0x0d998b16 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAfrica_Tripoli /*eras*/,
  &kZoneAfrica_Tripoli /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: MET -> Europe/Brussels
//---------------------------------------------------------------------------

static const char kZoneNameMET[] ACE_TIME_PROGMEM = "MET";

const complete::Info::ZoneInfo kZoneMET ACE_TIME_PROGMEM = {
  kZoneNameMET /*name*/,
  0x0b8803ab /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Brussels /*eras*/,
  &kZoneEurope_Brussels /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: MST -> America/Phoenix
//---------------------------------------------------------------------------

static const char kZoneNameMST[] ACE_TIME_PROGMEM = "MST";

const complete::Info::ZoneInfo kZoneMST ACE_TIME_PROGMEM = {
  kZoneNameMST /*name*/,
  0x0b880579 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Phoenix /*eras*/,
  &kZoneAmerica_Phoenix /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: MST7MDT -> America/Denver
//---------------------------------------------------------------------------

static const char kZoneNameMST7MDT[] ACE_TIME_PROGMEM = "MST7MDT";

const complete::Info::ZoneInfo kZoneMST7MDT ACE_TIME_PROGMEM = {
  kZoneNameMST7MDT /*name*/,
  0xf2af9375 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Denver /*eras*/,
  &kZoneAmerica_Denver /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Mexico/BajaNorte -> America/Tijuana
//---------------------------------------------------------------------------

static const char kZoneNameMexico_BajaNorte[] ACE_TIME_PROGMEM = "Mexico/BajaNorte";

const complete::Info::ZoneInfo kZoneMexico_BajaNorte ACE_TIME_PROGMEM = {
  kZoneNameMexico_BajaNorte /*name*/,
  0xfcf7150f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  25 /*numEras*/,
  kZoneEraAmerica_Tijuana /*eras*/,
  &kZoneAmerica_Tijuana /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Mexico/BajaSur -> America/Mazatlan
//---------------------------------------------------------------------------

static const char kZoneNameMexico_BajaSur[] ACE_TIME_PROGMEM = "Mexico/BajaSur";

const complete::Info::ZoneInfo kZoneMexico_BajaSur ACE_TIME_PROGMEM = {
  kZoneNameMexico_BajaSur /*name*/,
  0x08ee3641 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Mazatlan /*eras*/,
  &kZoneAmerica_Mazatlan /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Mexico/General -> America/Mexico_City
//---------------------------------------------------------------------------

static const char kZoneNameMexico_General[] ACE_TIME_PROGMEM = "Mexico/General";

const complete::Info::ZoneInfo kZoneMexico_General ACE_TIME_PROGMEM = {
  kZoneNameMexico_General /*name*/,
  0x93711d57 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Mexico_City /*eras*/,
  &kZoneAmerica_Mexico_City /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: NZ -> Pacific/Auckland
//---------------------------------------------------------------------------

static const char kZoneNameNZ[] ACE_TIME_PROGMEM = "NZ";

const complete::Info::ZoneInfo kZoneNZ ACE_TIME_PROGMEM = {
  kZoneNameNZ /*name*/,
  0x005974ad /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Auckland /*eras*/,
  &kZonePacific_Auckland /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: NZ-CHAT -> Pacific/Chatham
//---------------------------------------------------------------------------

static const char kZoneNameNZ_CHAT[] ACE_TIME_PROGMEM = "NZ-CHAT";

const complete::Info::ZoneInfo kZoneNZ_CHAT ACE_TIME_PROGMEM = {
  kZoneNameNZ_CHAT /*name*/,
  0x4d42afda /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Chatham /*eras*/,
  &kZonePacific_Chatham /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Navajo -> America/Denver
//---------------------------------------------------------------------------

static const char kZoneNameNavajo[] ACE_TIME_PROGMEM = "Navajo";

const complete::Info::ZoneInfo kZoneNavajo ACE_TIME_PROGMEM = {
  kZoneNameNavajo /*name*/,
  0xc4ef0e24 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Denver /*eras*/,
  &kZoneAmerica_Denver /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: PRC -> Asia/Shanghai
//---------------------------------------------------------------------------

static const char kZoneNamePRC[] ACE_TIME_PROGMEM = "PRC";

const complete::Info::ZoneInfo kZonePRC ACE_TIME_PROGMEM = {
  kZoneNamePRC /*name*/,
  0x0b88120a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraAsia_Shanghai /*eras*/,
  &kZoneAsia_Shanghai /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: PST8PDT -> America/Los_Angeles
//---------------------------------------------------------------------------

static const char kZoneNamePST8PDT[] ACE_TIME_PROGMEM = "PST8PDT";

const complete::Info::ZoneInfo kZonePST8PDT ACE_TIME_PROGMEM = {
  kZoneNamePST8PDT /*name*/,
  0xd99ee2dc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Los_Angeles /*eras*/,
  &kZoneAmerica_Los_Angeles /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Chuuk -> Pacific/Port_Moresby
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Chuuk[] ACE_TIME_PROGMEM = "\x0e" "Chuuk";

const complete::Info::ZoneInfo kZonePacific_Chuuk ACE_TIME_PROGMEM = {
  kZoneNamePacific_Chuuk /*name*/,
  0x8a090b23 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Port_Moresby /*eras*/,
  &kZonePacific_Port_Moresby /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Enderbury -> Pacific/Kanton
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Enderbury[] ACE_TIME_PROGMEM = "\x0e" "Enderbury";

const complete::Info::ZoneInfo kZonePacific_Enderbury ACE_TIME_PROGMEM = {
  kZoneNamePacific_Enderbury /*name*/,
  0x61599a93 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraPacific_Kanton /*eras*/,
  &kZonePacific_Kanton /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Funafuti -> Pacific/Tarawa
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Funafuti[] ACE_TIME_PROGMEM = "\x0e" "Funafuti";

const complete::Info::ZoneInfo kZonePacific_Funafuti ACE_TIME_PROGMEM = {
  kZoneNamePacific_Funafuti /*name*/,
  0xdb402d65 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tarawa /*eras*/,
  &kZonePacific_Tarawa /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Johnston -> Pacific/Honolulu
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Johnston[] ACE_TIME_PROGMEM = "\x0e" "Johnston";

const complete::Info::ZoneInfo kZonePacific_Johnston ACE_TIME_PROGMEM = {
  kZoneNamePacific_Johnston /*name*/,
  0xb15d7b36 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Honolulu /*eras*/,
  &kZonePacific_Honolulu /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Majuro -> Pacific/Tarawa
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Majuro[] ACE_TIME_PROGMEM = "\x0e" "Majuro";

const complete::Info::ZoneInfo kZonePacific_Majuro ACE_TIME_PROGMEM = {
  kZoneNamePacific_Majuro /*name*/,
  0xe1f95371 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tarawa /*eras*/,
  &kZonePacific_Tarawa /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Midway -> Pacific/Pago_Pago
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Midway[] ACE_TIME_PROGMEM = "\x0e" "Midway";

const complete::Info::ZoneInfo kZonePacific_Midway ACE_TIME_PROGMEM = {
  kZoneNamePacific_Midway /*name*/,
  0xe286d38e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Pago_Pago /*eras*/,
  &kZonePacific_Pago_Pago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Pohnpei -> Pacific/Guadalcanal
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Pohnpei[] ACE_TIME_PROGMEM = "\x0e" "Pohnpei";

const complete::Info::ZoneInfo kZonePacific_Pohnpei ACE_TIME_PROGMEM = {
  kZoneNamePacific_Pohnpei /*name*/,
  0x28929f96 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Guadalcanal /*eras*/,
  &kZonePacific_Guadalcanal /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Ponape -> Pacific/Guadalcanal
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Ponape[] ACE_TIME_PROGMEM = "\x0e" "Ponape";

const complete::Info::ZoneInfo kZonePacific_Ponape ACE_TIME_PROGMEM = {
  kZoneNamePacific_Ponape /*name*/,
  0xe9f80086 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Guadalcanal /*eras*/,
  &kZonePacific_Guadalcanal /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Saipan -> Pacific/Guam
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Saipan[] ACE_TIME_PROGMEM = "\x0e" "Saipan";

const complete::Info::ZoneInfo kZonePacific_Saipan ACE_TIME_PROGMEM = {
  kZoneNamePacific_Saipan /*name*/,
  0xeff7a35f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraPacific_Guam /*eras*/,
  &kZonePacific_Guam /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Samoa -> Pacific/Pago_Pago
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Samoa[] ACE_TIME_PROGMEM = "\x0e" "Samoa";

const complete::Info::ZoneInfo kZonePacific_Samoa ACE_TIME_PROGMEM = {
  kZoneNamePacific_Samoa /*name*/,
  0x8b2699b4 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Pago_Pago /*eras*/,
  &kZonePacific_Pago_Pago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Truk -> Pacific/Port_Moresby
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Truk[] ACE_TIME_PROGMEM = "\x0e" "Truk";

const complete::Info::ZoneInfo kZonePacific_Truk ACE_TIME_PROGMEM = {
  kZoneNamePacific_Truk /*name*/,
  0x234010a9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Port_Moresby /*eras*/,
  &kZonePacific_Port_Moresby /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Wake -> Pacific/Tarawa
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Wake[] ACE_TIME_PROGMEM = "\x0e" "Wake";

const complete::Info::ZoneInfo kZonePacific_Wake ACE_TIME_PROGMEM = {
  kZoneNamePacific_Wake /*name*/,
  0x23416c2b /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tarawa /*eras*/,
  &kZonePacific_Tarawa /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Wallis -> Pacific/Tarawa
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Wallis[] ACE_TIME_PROGMEM = "\x0e" "Wallis";

const complete::Info::ZoneInfo kZonePacific_Wallis ACE_TIME_PROGMEM = {
  kZoneNamePacific_Wallis /*name*/,
  0xf94ddb0f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  2 /*numEras*/,
  kZoneEraPacific_Tarawa /*eras*/,
  &kZonePacific_Tarawa /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Pacific/Yap -> Pacific/Port_Moresby
//---------------------------------------------------------------------------

static const char kZoneNamePacific_Yap[] ACE_TIME_PROGMEM = "\x0e" "Yap";

const complete::Info::ZoneInfo kZonePacific_Yap ACE_TIME_PROGMEM = {
  kZoneNamePacific_Yap /*name*/,
  0xbb40138d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Port_Moresby /*eras*/,
  &kZonePacific_Port_Moresby /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Poland -> Europe/Warsaw
//---------------------------------------------------------------------------

static const char kZoneNamePoland[] ACE_TIME_PROGMEM = "Poland";

const complete::Info::ZoneInfo kZonePoland ACE_TIME_PROGMEM = {
  kZoneNamePoland /*name*/,
  0xca913b23 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraEurope_Warsaw /*eras*/,
  &kZoneEurope_Warsaw /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Portugal -> Europe/Lisbon
//---------------------------------------------------------------------------

static const char kZoneNamePortugal[] ACE_TIME_PROGMEM = "Portugal";

const complete::Info::ZoneInfo kZonePortugal ACE_TIME_PROGMEM = {
  kZoneNamePortugal /*name*/,
  0xc3274593 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraEurope_Lisbon /*eras*/,
  &kZoneEurope_Lisbon /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: ROC -> Asia/Taipei
//---------------------------------------------------------------------------

static const char kZoneNameROC[] ACE_TIME_PROGMEM = "ROC";

const complete::Info::ZoneInfo kZoneROC ACE_TIME_PROGMEM = {
  kZoneNameROC /*name*/,
  0x0b881a29 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAsia_Taipei /*eras*/,
  &kZoneAsia_Taipei /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: ROK -> Asia/Seoul
//---------------------------------------------------------------------------

static const char kZoneNameROK[] ACE_TIME_PROGMEM = "ROK";

const complete::Info::ZoneInfo kZoneROK ACE_TIME_PROGMEM = {
  kZoneNameROK /*name*/,
  0x0b881a31 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAsia_Seoul /*eras*/,
  &kZoneAsia_Seoul /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Singapore -> Asia/Singapore
//---------------------------------------------------------------------------

static const char kZoneNameSingapore[] ACE_TIME_PROGMEM = "Singapore";

const complete::Info::ZoneInfo kZoneSingapore ACE_TIME_PROGMEM = {
  kZoneNameSingapore /*name*/,
  0xa8598c8d /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAsia_Singapore /*eras*/,
  &kZoneAsia_Singapore /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Turkey -> Europe/Istanbul
//---------------------------------------------------------------------------

static const char kZoneNameTurkey[] ACE_TIME_PROGMEM = "Turkey";

const complete::Info::ZoneInfo kZoneTurkey ACE_TIME_PROGMEM = {
  kZoneNameTurkey /*name*/,
  0xd455e469 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  13 /*numEras*/,
  kZoneEraEurope_Istanbul /*eras*/,
  &kZoneEurope_Istanbul /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: UCT -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameUCT[] ACE_TIME_PROGMEM = "UCT";

const complete::Info::ZoneInfo kZoneUCT ACE_TIME_PROGMEM = {
  kZoneNameUCT /*name*/,
  0x0b882571 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Alaska -> America/Anchorage
//---------------------------------------------------------------------------

static const char kZoneNameUS_Alaska[] ACE_TIME_PROGMEM = "US/Alaska";

const complete::Info::ZoneInfo kZoneUS_Alaska ACE_TIME_PROGMEM = {
  kZoneNameUS_Alaska /*name*/,
  0xfa300bc9 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Anchorage /*eras*/,
  &kZoneAmerica_Anchorage /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Aleutian -> America/Adak
//---------------------------------------------------------------------------

static const char kZoneNameUS_Aleutian[] ACE_TIME_PROGMEM = "US/Aleutian";

const complete::Info::ZoneInfo kZoneUS_Aleutian ACE_TIME_PROGMEM = {
  kZoneNameUS_Aleutian /*name*/,
  0x4fe013ef /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  9 /*numEras*/,
  kZoneEraAmerica_Adak /*eras*/,
  &kZoneAmerica_Adak /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Arizona -> America/Phoenix
//---------------------------------------------------------------------------

static const char kZoneNameUS_Arizona[] ACE_TIME_PROGMEM = "US/Arizona";

const complete::Info::ZoneInfo kZoneUS_Arizona ACE_TIME_PROGMEM = {
  kZoneNameUS_Arizona /*name*/,
  0x4ec52670 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Phoenix /*eras*/,
  &kZoneAmerica_Phoenix /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Central -> America/Chicago
//---------------------------------------------------------------------------

static const char kZoneNameUS_Central[] ACE_TIME_PROGMEM = "US/Central";

const complete::Info::ZoneInfo kZoneUS_Central ACE_TIME_PROGMEM = {
  kZoneNameUS_Central /*name*/,
  0xcabdcb25 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraAmerica_Chicago /*eras*/,
  &kZoneAmerica_Chicago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/East-Indiana -> America/Indiana/Indianapolis
//---------------------------------------------------------------------------

static const char kZoneNameUS_East_Indiana[] ACE_TIME_PROGMEM = "US/East-Indiana";

const complete::Info::ZoneInfo kZoneUS_East_Indiana ACE_TIME_PROGMEM = {
  kZoneNameUS_East_Indiana /*name*/,
  0x6dcf558a /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraAmerica_Indiana_Indianapolis /*eras*/,
  &kZoneAmerica_Indiana_Indianapolis /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Eastern -> America/New_York
//---------------------------------------------------------------------------

static const char kZoneNameUS_Eastern[] ACE_TIME_PROGMEM = "US/Eastern";

const complete::Info::ZoneInfo kZoneUS_Eastern ACE_TIME_PROGMEM = {
  kZoneNameUS_Eastern /*name*/,
  0x5bb7e78e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_New_York /*eras*/,
  &kZoneAmerica_New_York /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Hawaii -> Pacific/Honolulu
//---------------------------------------------------------------------------

static const char kZoneNameUS_Hawaii[] ACE_TIME_PROGMEM = "US/Hawaii";

const complete::Info::ZoneInfo kZoneUS_Hawaii ACE_TIME_PROGMEM = {
  kZoneNameUS_Hawaii /*name*/,
  0x09c8de2f /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  5 /*numEras*/,
  kZoneEraPacific_Honolulu /*eras*/,
  &kZonePacific_Honolulu /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Indiana-Starke -> America/Indiana/Knox
//---------------------------------------------------------------------------

static const char kZoneNameUS_Indiana_Starke[] ACE_TIME_PROGMEM = "US/Indiana-Starke";

const complete::Info::ZoneInfo kZoneUS_Indiana_Starke ACE_TIME_PROGMEM = {
  kZoneNameUS_Indiana_Starke /*name*/,
  0x67977be7 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  7 /*numEras*/,
  kZoneEraAmerica_Indiana_Knox /*eras*/,
  &kZoneAmerica_Indiana_Knox /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Michigan -> America/Detroit
//---------------------------------------------------------------------------

static const char kZoneNameUS_Michigan[] ACE_TIME_PROGMEM = "US/Michigan";

const complete::Info::ZoneInfo kZoneUS_Michigan ACE_TIME_PROGMEM = {
  kZoneNameUS_Michigan /*name*/,
  0x766bb7bc /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  10 /*numEras*/,
  kZoneEraAmerica_Detroit /*eras*/,
  &kZoneAmerica_Detroit /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Mountain -> America/Denver
//---------------------------------------------------------------------------

static const char kZoneNameUS_Mountain[] ACE_TIME_PROGMEM = "US/Mountain";

const complete::Info::ZoneInfo kZoneUS_Mountain ACE_TIME_PROGMEM = {
  kZoneNameUS_Mountain /*name*/,
  0x6eb88247 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  6 /*numEras*/,
  kZoneEraAmerica_Denver /*eras*/,
  &kZoneAmerica_Denver /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Pacific -> America/Los_Angeles
//---------------------------------------------------------------------------

static const char kZoneNameUS_Pacific[] ACE_TIME_PROGMEM = "US/Pacific";

const complete::Info::ZoneInfo kZoneUS_Pacific ACE_TIME_PROGMEM = {
  kZoneNameUS_Pacific /*name*/,
  0xa950f6ab /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  4 /*numEras*/,
  kZoneEraAmerica_Los_Angeles /*eras*/,
  &kZoneAmerica_Los_Angeles /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: US/Samoa -> Pacific/Pago_Pago
//---------------------------------------------------------------------------

static const char kZoneNameUS_Samoa[] ACE_TIME_PROGMEM = "US/Samoa";

const complete::Info::ZoneInfo kZoneUS_Samoa ACE_TIME_PROGMEM = {
  kZoneNameUS_Samoa /*name*/,
  0x566821cd /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  3 /*numEras*/,
  kZoneEraPacific_Pago_Pago /*eras*/,
  &kZonePacific_Pago_Pago /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: UTC -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameUTC[] ACE_TIME_PROGMEM = "UTC";

const complete::Info::ZoneInfo kZoneUTC ACE_TIME_PROGMEM = {
  kZoneNameUTC /*name*/,
  0x0b882791 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Universal -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameUniversal[] ACE_TIME_PROGMEM = "Universal";

const complete::Info::ZoneInfo kZoneUniversal ACE_TIME_PROGMEM = {
  kZoneNameUniversal /*name*/,
  0xd0ff523e /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: W-SU -> Europe/Moscow
//---------------------------------------------------------------------------

static const char kZoneNameW_SU[] ACE_TIME_PROGMEM = "W-SU";

const complete::Info::ZoneInfo kZoneW_SU ACE_TIME_PROGMEM = {
  kZoneNameW_SU /*name*/,
  0x7c8d8ef1 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  11 /*numEras*/,
  kZoneEraEurope_Moscow /*eras*/,
  &kZoneEurope_Moscow /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: WET -> Europe/Lisbon
//---------------------------------------------------------------------------

static const char kZoneNameWET[] ACE_TIME_PROGMEM = "WET";

const complete::Info::ZoneInfo kZoneWET ACE_TIME_PROGMEM = {
  kZoneNameWET /*name*/,
  0x0b882e35 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  8 /*numEras*/,
  kZoneEraEurope_Lisbon /*eras*/,
  &kZoneEurope_Lisbon /*targetInfo*/,
};

//---------------------------------------------------------------------------
// Link name: Zulu -> Etc/UTC
//---------------------------------------------------------------------------

static const char kZoneNameZulu[] ACE_TIME_PROGMEM = "Zulu";

const complete::Info::ZoneInfo kZoneZulu ACE_TIME_PROGMEM = {
  kZoneNameZulu /*name*/,
  0x7c9069b5 /*zoneId*/,
  &kZoneContext /*zoneContext*/,
  1 /*numEras*/,
  kZoneEraEtc_UTC /*eras*/,
  &kZoneEtc_UTC /*targetInfo*/,
};


}
}
