def decode_timestamp(data: str) -> datetime.datetime:
year = <NUM_LIT> + int(data[<NUM_LIT:0>:<NUM_LIT:2>])<EOL>month = int(data[<NUM_LIT:2>:<NUM_LIT:4>])<EOL>day = int(data[<NUM_LIT:4>:<NUM_LIT:6>])<EOL>hour = int(data[<NUM_LIT:6>:<NUM_LIT:8>])<EOL>minute = int(data[<NUM_LIT:8>:<NUM_LIT:10>])<EOL>second = int(data[<NUM_LIT:10>:<NUM_LIT:12>])<EOL>if minute == <NUM_LIT>:<EOL><INDENT>minute = <NUM_LIT:0><EOL>hour += <NUM_LIT:1><EOL><DEDENT>return datetime.datetime(year=year, month=month, day=day, hour=hour,<EOL>minute=minute, second=second)<EOL>
Decode timestamp using bespoke decoder.
Cannot use simple strptime since the ness panel contains a bug
that P199E zone and state updates emitted on the hour cause a minute
value of `60` to be sent, causing strptime to fail. This decoder handles
this edge case.