       die interval
 
 # Remember that we have pseudo-POSIX for wallclock.
-shifts = (say, data, name, startYear) ->
+shifts = (say, gather, data, name, startYear) ->
   table = []
   # Some time well in the future, for ranges.
   future = new Date(Date.UTC(new Date().getUTCFullYear() + 50, 0, 1))

    max = min
    # Onward to the next zone record.
    entryIndex++
  table.push Number.MIN_VALUE, Number.MIN_VALUE, zone.length - 1, -1
  for index in [0...table.length - 4] by 4
    posix = table[index]
    wallclock = table[index + 1]
    from = tableFormat(table, zone, data.rules, index + 4)
    to = tableFormat(table, zone, data.rules, index)
    console.log "#{name} #{iso8601 wallclock} #{iso8601 posix} #{from} #{to}"

tableFormat = (table, zone, rules, index) ->
  offset = formatOffset tableOffset table, zone, rules, index

    offset += parseOffset rule.save or "0"
  offset

do ->
  table = []
  gather = (posix, wallclock, entryIndex, ruleIndex) ->
    table.push posix, wallclock, entryIndex, ruleIndex
    true

  name = process.argv[2]
  shifts(say, gather, data, name, START)

  zone = data.zones[name]
  for index in [0...table.length - 4] by 4
    posix = table[index]
    wallclock = table[index + 1]
    from = tableFormat(table, zone, data.rules, index + 4)
    to = tableFormat(table, zone, data.rules, index)
    console.log "#{name} #{iso8601 wallclock} #{iso8601 posix} #{from} #{to}"
