Skip to content

Instantly share code, notes, and snippets.

@rschroll
Last active July 30, 2021 01:47
Show Gist options
  • Save rschroll/a261f9a872eb2dcf5cdcaba32a7fea80 to your computer and use it in GitHub Desktop.
Save rschroll/a261f9a872eb2dcf5cdcaba32a7fea80 to your computer and use it in GitHub Desktop.
Monkeybrains Outages
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "6fcae8c8",
"metadata": {},
"source": [
"# Recurring Monkeybrains outages\n",
"\n",
"After the buyout of Common.net last year, my ISP has been Monkeybrains. Soon after their takeover, I started experiencing common internet outages, often once a day. Support has been unable to resolve the problem. This is my attempt to better understand what's going wrong.\n",
"\n",
"I set a script to ping Google's DNS server, report success or failure, sleep for 15 seconds, and then repeat. Because the ping takes a little time (I set a 1 second timeout), the tests occur slightly more that 15 seconds apart. But for our rough purposes, this should be good enough.\n",
"\n",
"A technician visited and determined that an electrical connection within the Monkeybrains equipment was flaky, causing equipment restarts when the equipment was jostled. He secured things better, but the problem remains."
]
},
{
"cell_type": "markdown",
"id": "4342ee4c",
"metadata": {},
"source": [
"## Set up"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "ec5ffb9e",
"metadata": {},
"outputs": [],
"source": [
"from collections import Counter\n",
"import datetime\n",
"import dateutil\n",
"from itertools import groupby"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b0851a42",
"metadata": {},
"outputs": [],
"source": [
"def parse_line(line):\n",
" d, s = line.strip().split()\n",
" return datetime.datetime.fromisoformat(d), s\n",
"\n",
"def period_stats(it):\n",
" group = list(it)\n",
" return len(group), group[0][0]"
]
},
{
"cell_type": "markdown",
"id": "34f87746",
"metadata": {},
"source": [
"## Loading the data\n",
"\n",
"The script writes a single line per test, reporting the time and a success flag."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c198aab0",
"metadata": {},
"outputs": [],
"source": [
"with open('log.txt', 'r') as f:\n",
" logs = [parse_line(line) for line in f.readlines()]"
]
},
{
"cell_type": "markdown",
"id": "0c3c70d1",
"metadata": {},
"source": [
"So far, it's been running for nearly two months."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "04289264",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'53 days, 20:01:00'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"str(logs[-1][0] - logs[0][0])"
]
},
{
"cell_type": "markdown",
"id": "ba4d76ab",
"metadata": {},
"source": [
"There was a separate problem from 6/22 to 6/24, which caused a large number of failures. These were caused by some strange routing that gave me a new IP address every few minutes, causing all existing connections to fail. This has been solved (perhaps; Monkeybrains never explained how this started or ended), so I'll filter those dates out."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a51a232e",
"metadata": {},
"outputs": [],
"source": [
"tz = dateutil.tz.tzlocal()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "50b744c5",
"metadata": {},
"outputs": [],
"source": [
"logs = list(filter(lambda line: not datetime.datetime(2021, 6, 22, tzinfo=tz) < line[0] < datetime.datetime(2021, 6, 25, tzinfo=tz), logs))"
]
},
{
"cell_type": "markdown",
"id": "607d4d08",
"metadata": {},
"source": [
"## Outage Lengths\n",
"\n",
"Since we care about periods of outage, we'll group all like status into periods."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "990b6a9b",
"metadata": {},
"outputs": [],
"source": [
"periods = [(status, *period_stats(group)) for status, group in groupby(logs, lambda x: x[1])]"
]
},
{
"cell_type": "markdown",
"id": "d6d3925b",
"metadata": {},
"source": [
"The list of all periods is included at the end of this document. Here we focus on the periods of outages. How long did they last?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "dedb1484",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"count duration\n",
" 239 1\n",
" 106 12\n",
" 50 13\n",
" 15 2\n",
" 2 3\n",
" 2 4\n",
" 1 551\n",
" 1 55\n",
" 1 1042\n",
" 1 8\n",
" 1 11\n",
" 1 288\n",
" 1 1823\n",
" 1 546\n",
" 1 154\n",
" 1 366\n",
" 1 443\n"
]
}
],
"source": [
"print(\"count duration\")\n",
"for value, count in Counter(length for status, length, _ in periods if status == 'F').most_common():\n",
" print(f\"{count: 5} {value: 8}\")"
]
},
{
"cell_type": "markdown",
"id": "e967901e",
"metadata": {},
"source": [
"These durations are in measurements, about 15s each.\n",
"\n",
"The less interesting results first:\n",
"- The failure for duration 55 was caused by the technician resetting the equipment. Can't complain about that one.\n",
"- There are a few longer failures. Some of these resolved on their own; some required me to reset the building equipment.\n",
"- There are 238 outages of duration 1. It's likely these are just ping packets that got lost, so I don't think its fair to consider these failures."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "b932b424",
"metadata": {},
"outputs": [],
"source": [
"failures = [(length, start) for status, length, start in periods if status == 'F' and length > 1]"
]
},
{
"cell_type": "markdown",
"id": "ce12287a",
"metadata": {},
"source": [
"What's more intersting is that all other failures are either 12 or 13 periods in duration, just over 3 minutes. These corresponds to the outages that I notice.\n",
"\n",
"There were 150 such outages over the period we've analyzed, giving about two per day on average. Taking an average outage of 3 minutes, this gives a 99.6% uptime. This might be good for soap, but I expect more than two nines of service from an internet provider.\n",
"\n",
"The consistent length of these outages suggests a consistent cause to them. It's highly unlikely that a bunch of random errors would all cause 3-minute outages. It's much more likely that the same device is failing in the same way again and again."
]
},
{
"cell_type": "markdown",
"id": "d7e1a6be",
"metadata": {},
"source": [
"## Outage Spacing\n",
"\n",
"Do these happen in any predictable way? Let's look at the times between outages. From above, we consider outages to require more than a single failed ping. Since the time between failures is larger, we'll look at time stamps rather than counting trials between failures. For ease of reading, we'll sort them by duration."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "236d381f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['0:00:47',\n",
" '0:01:01',\n",
" '0:01:18',\n",
" '0:02:03',\n",
" '0:03:03',\n",
" '0:03:03',\n",
" '0:05:41',\n",
" '0:05:42',\n",
" '0:05:59',\n",
" '0:06:05',\n",
" '0:06:39',\n",
" '0:10:51',\n",
" '0:11:55',\n",
" '0:12:45',\n",
" '0:16:05',\n",
" '0:17:10',\n",
" '0:17:55',\n",
" '0:35:19',\n",
" '0:35:20',\n",
" '0:35:33',\n",
" '0:35:43',\n",
" '0:36:20',\n",
" '0:36:34',\n",
" '0:36:49',\n",
" '0:36:49',\n",
" '0:36:50',\n",
" '0:37:04',\n",
" '0:37:04',\n",
" '0:37:05',\n",
" '0:37:05',\n",
" '0:37:20',\n",
" '0:37:20',\n",
" '0:37:50',\n",
" '0:38:05',\n",
" '0:38:36',\n",
" '0:39:04',\n",
" '0:39:05',\n",
" '0:40:19',\n",
" '0:41:03',\n",
" '0:42:05',\n",
" '0:42:06',\n",
" '0:42:52',\n",
" '0:43:21',\n",
" '0:45:51',\n",
" '0:52:06',\n",
" '0:53:22',\n",
" '1:01:40',\n",
" '1:10:56',\n",
" '1:11:12',\n",
" '1:11:54',\n",
" '1:12:22',\n",
" '1:13:12',\n",
" '1:16:12',\n",
" '1:16:28',\n",
" '1:17:19',\n",
" '1:28:46',\n",
" '1:35:02',\n",
" '1:45:05',\n",
" '1:45:48',\n",
" '1:47:03',\n",
" '1:48:03',\n",
" '1:50:35',\n",
" '1:50:48',\n",
" '1:50:49',\n",
" '1:51:36',\n",
" '1:52:49',\n",
" '1:52:50',\n",
" '1:55:50',\n",
" '1:56:21',\n",
" '2:04:24',\n",
" '2:21:27',\n",
" '2:21:41',\n",
" '2:22:10',\n",
" '2:25:38',\n",
" '2:26:19',\n",
" '2:40:36',\n",
" '2:40:45',\n",
" '2:53:02',\n",
" '2:53:15',\n",
" '2:53:18',\n",
" '2:54:04',\n",
" '2:54:48',\n",
" '2:56:33',\n",
" '2:58:15',\n",
" '2:58:19',\n",
" '3:05:51',\n",
" '3:06:35',\n",
" '3:08:18',\n",
" '3:08:23',\n",
" '3:14:43',\n",
" '3:22:53',\n",
" '3:29:28',\n",
" '3:31:10',\n",
" '3:32:55',\n",
" '3:37:59',\n",
" '3:38:41',\n",
" '3:38:46',\n",
" '3:40:57',\n",
" '3:48:29',\n",
" '3:53:13',\n",
" '3:57:48',\n",
" '4:00:52',\n",
" '4:02:50',\n",
" '4:07:54',\n",
" '4:10:21',\n",
" '4:24:20',\n",
" '4:33:26',\n",
" '4:36:24',\n",
" '4:39:53',\n",
" '4:45:22',\n",
" '4:47:54',\n",
" '4:51:28',\n",
" '4:52:24',\n",
" '4:58:13',\n",
" '4:58:33',\n",
" '5:00:14',\n",
" '5:03:29',\n",
" '5:23:48',\n",
" '5:25:35',\n",
" '5:25:38',\n",
" '5:33:51',\n",
" '5:36:08',\n",
" '5:39:24',\n",
" '5:46:52',\n",
" '6:01:09',\n",
" '6:05:01',\n",
" '6:10:57',\n",
" '6:25:34',\n",
" '6:30:43',\n",
" '6:33:31',\n",
" '6:33:33',\n",
" '6:40:19',\n",
" '6:55:21',\n",
" '7:04:37',\n",
" '7:05:41',\n",
" '7:11:20',\n",
" '7:41:21',\n",
" '7:42:59',\n",
" '7:43:37',\n",
" '7:56:37',\n",
" '8:00:02',\n",
" '8:35:23',\n",
" '8:46:30',\n",
" '8:55:47',\n",
" '9:01:47',\n",
" '9:12:25',\n",
" '9:54:28',\n",
" '10:27:18',\n",
" '10:40:50',\n",
" '10:57:09',\n",
" '11:45:20',\n",
" '13:00:32',\n",
" '13:20:28',\n",
" '13:42:00',\n",
" '13:51:10',\n",
" '14:08:07',\n",
" '14:37:54',\n",
" '14:56:47',\n",
" '15:44:26',\n",
" '16:11:07',\n",
" '16:18:07',\n",
" '17:14:00',\n",
" '17:55:32',\n",
" '18:08:17',\n",
" '18:10:49',\n",
" '18:19:21',\n",
" '18:26:26',\n",
" '18:30:11',\n",
" '18:34:54',\n",
" '18:36:11',\n",
" '19:09:38',\n",
" '19:29:57',\n",
" '20:18:50',\n",
" '20:39:48',\n",
" '20:57:32',\n",
" '22:40:41',\n",
" '22:45:13',\n",
" '22:57:09',\n",
" '1 day, 0:16:41',\n",
" '1 day, 1:26:14',\n",
" '1 day, 19:07:14',\n",
" '1 day, 20:12:33',\n",
" '2 days, 1:07:00',\n",
" '2 days, 2:02:41',\n",
" '3 days, 19:40:29']"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(map(str, sorted(f2[1] - f1[1] for f1, f2 in zip(failures[:-1], failures[1:]))))"
]
},
{
"cell_type": "markdown",
"id": "e134237c",
"metadata": {},
"source": [
"There's no obvious periodicity to the outages. Spacing varies between 3 minutes to nearly 4 days. This probably makes it less likely that this is caused by an expiring lease.\n",
"\n",
"There are a few spacings of 35-40 minutes. This might be interesting. The equipment is plugged into the same outlet as the building's two washer units. The washers have a cycle time of 30-40 minutes. It's possible that part of the washer cycle draws such a load that the circuit voltage falls enough to cause a reset of the Monkeybrains equipment. Then when someone runs two loads in series, we get failures about 35 minutes apart.\n",
"\n",
"To test this, we can look at the number of outages per hour in the day. Were the washers the cause, we'd expect all of the failures to occur during laundry hours (8am - 10pm). While there do seem to be fewer failures during the nighttime hours, the washers don't seem to be the only cause."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "89becf87",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(0, 5),\n",
" (1, 7),\n",
" (2, 11),\n",
" (3, 3),\n",
" (4, 7),\n",
" (5, 1),\n",
" (6, 1),\n",
" (7, 4),\n",
" (8, 3),\n",
" (9, 4),\n",
" (10, 4),\n",
" (11, 3),\n",
" (12, 6),\n",
" (13, 9),\n",
" (14, 12),\n",
" (15, 12),\n",
" (16, 8),\n",
" (17, 13),\n",
" (18, 20),\n",
" (19, 11),\n",
" (20, 14),\n",
" (21, 7),\n",
" (22, 10),\n",
" (23, 11)]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted(Counter(f[1].hour for f in failures).items())"
]
},
{
"cell_type": "markdown",
"id": "a04a2719",
"metadata": {},
"source": [
"## Appendix: All outages\n",
"\n",
"The technician attempted to correct the issue around 14:00 on 6/14. There is no obvious change in behavior following this visit. Allegedly, equipment was replaced on 7/20. There is a noticable outage in the middle of that day, but no improvement in behavior afterwards."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "15bff057",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"[(551, '2021-06-05 22:31:19-07:00'),\n",
" (12, '2021-06-06 02:29:07-07:00'),\n",
" (12, '2021-06-07 02:45:48-07:00'),\n",
" (13, '2021-06-07 13:42:57-07:00'),\n",
" (12, '2021-06-07 17:21:43-07:00'),\n",
" (13, '2021-06-07 18:02:46-07:00'),\n",
" (12, '2021-06-08 15:00:18-07:00'),\n",
" (12, '2021-06-08 17:26:37-07:00'),\n",
" (13, '2021-06-10 12:33:51-07:00'),\n",
" (13, '2021-06-10 19:45:11-07:00'),\n",
" (13, '2021-06-10 23:55:32-07:00'),\n",
" (12, '2021-06-11 22:52:41-07:00'),\n",
" (13, '2021-06-12 15:10:48-07:00'),\n",
" (12, '2021-06-12 22:52:09-07:00'),\n",
" (12, '2021-06-13 12:34:09-07:00'),\n",
" (13, '2021-06-13 20:30:46-07:00'),\n",
" (12, '2021-06-14 01:56:21-07:00'),\n",
" (13, '2021-06-14 09:39:20-07:00'),\n",
" (13, '2021-06-14 14:03:40-07:00'),\n",
" (55, '2021-06-14 14:09:39-07:00'),\n",
" (12, '2021-06-14 18:10:31-07:00'),\n",
" (13, '2021-06-14 18:45:51-07:00'),\n",
" (12, '2021-06-15 15:25:39-07:00'),\n",
" (12, '2021-06-15 21:51:13-07:00'),\n",
" (12, '2021-06-15 22:26:32-07:00'),\n",
" (13, '2021-06-16 01:57:42-07:00'),\n",
" (12, '2021-06-16 10:59:29-07:00'),\n",
" (13, '2021-06-16 11:38:33-07:00'),\n",
" (12, '2021-06-17 10:23:46-07:00'),\n",
" (1042, '2021-06-18 04:32:03-07:00'),\n",
" (8, '2021-06-18 09:11:56-07:00'),\n",
" (12, '2021-06-18 12:10:11-07:00'),\n",
" (12, '2021-06-18 14:14:35-07:00'),\n",
" (13, '2021-06-19 03:15:07-07:00'),\n",
" (12, '2021-06-19 05:10:57-07:00'),\n",
" (12, '2021-06-19 13:57:27-07:00'),\n",
" (2, '2021-06-21 10:10:00-07:00'),\n",
" (12, '2021-06-21 14:57:54-07:00'),\n",
" (12, '2021-06-21 16:15:13-07:00'),\n",
" (11, '2021-06-21 17:27:35-07:00'),\n",
" (12, '2021-06-21 22:01:01-07:00'),\n",
" (12, '2021-06-25 17:41:30-07:00'),\n",
" (12, '2021-06-25 21:22:27-07:00'),\n",
" (12, '2021-06-26 16:32:05-07:00'),\n",
" (12, '2021-06-26 17:09:55-07:00'),\n",
" (13, '2021-06-26 20:06:28-07:00'),\n",
" (12, '2021-06-27 02:39:59-07:00'),\n",
" (12, '2021-06-27 20:50:48-07:00'),\n",
" (2, '2021-06-28 15:26:59-07:00'),\n",
" (2, '2021-06-28 15:30:02-07:00'),\n",
" (2, '2021-06-28 15:33:05-07:00'),\n",
" (2, '2021-06-28 15:43:56-07:00'),\n",
" (2, '2021-06-28 16:00:01-07:00'),\n",
" (288, '2021-06-28 20:02:51-07:00'),\n",
" (12, '2021-06-29 02:04:00-07:00'),\n",
" (13, '2021-06-29 02:57:22-07:00'),\n",
" (13, '2021-06-29 07:55:35-07:00'),\n",
" (12, '2021-06-29 13:19:23-07:00'),\n",
" (12, '2021-06-29 16:12:25-07:00'),\n",
" (12, '2021-06-30 17:38:39-07:00'),\n",
" (13, '2021-07-02 18:45:39-07:00'),\n",
" (13, '2021-07-02 22:24:20-07:00'),\n",
" (12, '2021-07-03 14:35:27-07:00'),\n",
" (13, '2021-07-03 15:21:18-07:00'),\n",
" (12, '2021-07-03 16:04:10-07:00'),\n",
" (12, '2021-07-03 19:10:45-07:00'),\n",
" (13, '2021-07-03 19:47:49-07:00'),\n",
" (12, '2021-07-04 02:28:08-07:00'),\n",
" (12, '2021-07-04 10:28:10-07:00'),\n",
" (12, '2021-07-04 20:55:28-07:00'),\n",
" (12, '2021-07-05 04:00:05-07:00'),\n",
" (13, '2021-07-05 22:26:31-07:00'),\n",
" (13, '2021-07-05 23:09:52-07:00'),\n",
" (12, '2021-07-06 00:44:54-07:00'),\n",
" (1823, '2021-07-08 02:47:35-07:00'),\n",
" (12, '2021-07-08 16:38:45-07:00'),\n",
" (12, '2021-07-08 18:29:20-07:00'),\n",
" (12, '2021-07-08 23:27:53-07:00'),\n",
" (12, '2021-07-09 00:04:42-07:00'),\n",
" (12, '2021-07-09 01:57:32-07:00'),\n",
" (13, '2021-07-09 11:52:00-07:00'),\n",
" (12, '2021-07-09 20:27:23-07:00'),\n",
" (12, '2021-07-09 23:08:08-07:00'),\n",
" (13, '2021-07-10 02:13:59-07:00'),\n",
" (2, '2021-07-10 07:39:37-07:00'),\n",
" (2, '2021-07-10 07:45:42-07:00'),\n",
" (2, '2021-07-10 08:03:37-07:00'),\n",
" (2, '2021-07-10 08:20:47-07:00'),\n",
" (2, '2021-07-10 08:32:42-07:00'),\n",
" (12, '2021-07-10 15:03:25-07:00'),\n",
" (12, '2021-07-10 15:39:59-07:00'),\n",
" (12, '2021-07-10 17:28:02-07:00'),\n",
" (12, '2021-07-10 18:41:14-07:00'),\n",
" (12, '2021-07-10 19:19:19-07:00'),\n",
" (13, '2021-07-11 18:00:00-07:00'),\n",
" (12, '2021-07-11 18:37:05-07:00'),\n",
" (13, '2021-07-11 20:59:15-07:00'),\n",
" (3, '2021-07-12 14:54:47-07:00'),\n",
" (12, '2021-07-12 17:35:23-07:00'),\n",
" (13, '2021-07-12 22:38:52-07:00'),\n",
" (13, '2021-07-13 18:08:49-07:00'),\n",
" (13, '2021-07-13 21:57:18-07:00'),\n",
" (12, '2021-07-14 01:20:11-07:00'),\n",
" (13, '2021-07-14 17:04:37-07:00'),\n",
" (12, '2021-07-14 19:00:58-07:00'),\n",
" (12, '2021-07-14 19:40:03-07:00'),\n",
" (13, '2021-07-15 14:14:57-07:00'),\n",
" (13, '2021-07-15 23:10:44-07:00'),\n",
" (12, '2021-07-16 17:40:55-07:00'),\n",
" (12, '2021-07-16 23:14:46-07:00'),\n",
" (12, '2021-07-17 01:36:27-07:00'),\n",
" (13, '2021-07-17 04:29:45-07:00'),\n",
" (12, '2021-07-17 16:15:05-07:00'),\n",
" (12, '2021-07-17 19:48:00-07:00'),\n",
" (12, '2021-07-18 00:33:22-07:00'),\n",
" (12, '2021-07-18 03:26:37-07:00'),\n",
" (546, '2021-07-18 04:28:17-07:00'),\n",
" (12, '2021-07-18 13:40:42-07:00'),\n",
" (12, '2021-07-18 20:36:03-07:00'),\n",
" (13, '2021-07-18 21:13:23-07:00'),\n",
" (154, '2021-07-18 21:50:28-07:00'),\n",
" (13, '2021-07-19 12:47:15-07:00'),\n",
" (12, '2021-07-19 18:52:16-07:00'),\n",
" (13, '2021-07-19 20:37:21-07:00'),\n",
" (13, '2021-07-19 22:58:48-07:00'),\n",
" (12, '2021-07-19 23:37:24-07:00'),\n",
" (12, '2021-07-20 04:13:48-07:00'),\n",
" (366, '2021-07-20 11:19:29-07:00'),\n",
" (4, '2021-07-20 13:12:18-07:00'),\n",
" (4, '2021-07-20 13:13:36-07:00'),\n",
" (13, '2021-07-20 16:28:19-07:00'),\n",
" (12, '2021-07-20 18:19:55-07:00'),\n",
" (12, '2021-07-20 18:56:44-07:00'),\n",
" (12, '2021-07-20 19:32:27-07:00'),\n",
" (13, '2021-07-21 01:43:24-07:00'),\n",
" (13, '2021-07-21 04:38:12-07:00'),\n",
" (13, '2021-07-21 17:58:40-07:00'),\n",
" (12, '2021-07-21 20:56:59-07:00'),\n",
" (2, '2021-07-22 14:10:59-07:00'),\n",
" (2, '2021-07-22 14:12:00-07:00'),\n",
" (2, '2021-07-22 14:14:03-07:00'),\n",
" (3, '2021-07-22 14:14:50-07:00'),\n",
" (12, '2021-07-22 18:22:44-07:00'),\n",
" (12, '2021-07-23 00:09:36-07:00'),\n",
" (12, '2021-07-23 18:28:57-07:00'),\n",
" (13, '2021-07-23 19:06:01-07:00'),\n",
" (12, '2021-07-23 20:17:55-07:00'),\n",
" (12, '2021-07-23 23:11:59-07:00'),\n",
" (13, '2021-07-23 23:49:19-07:00'),\n",
" (13, '2021-07-24 01:05:47-07:00'),\n",
" (12, '2021-07-24 02:34:33-07:00'),\n",
" (12, '2021-07-24 03:26:39-07:00'),\n",
" (12, '2021-07-24 18:04:33-07:00'),\n",
" (12, '2021-07-24 18:40:53-07:00'),\n",
" (13, '2021-07-24 19:51:49-07:00'),\n",
" (12, '2021-07-24 23:21:17-07:00'),\n",
" (12, '2021-07-25 13:29:24-07:00'),\n",
" (13, '2021-07-25 19:05:32-07:00'),\n",
" (12, '2021-07-25 20:51:20-07:00'),\n",
" (13, '2021-07-25 21:26:53-07:00'),\n",
" (12, '2021-07-25 22:38:05-07:00'),\n",
" (12, '2021-07-26 02:31:18-07:00'),\n",
" (12, '2021-07-26 09:04:51-07:00'),\n",
" (2, '2021-07-26 13:56:19-07:00'),\n",
" (13, '2021-07-27 00:37:09-07:00'),\n",
" (12, '2021-07-27 20:55:59-07:00'),\n",
" (12, '2021-07-28 04:39:36-07:00'),\n",
" (12, '2021-07-28 06:30:24-07:00'),\n",
" (12, '2021-07-28 09:38:47-07:00'),\n",
" (12, '2021-07-28 15:18:11-07:00'),\n",
" (12, '2021-07-28 18:56:10-07:00'),\n",
" (12, '2021-07-28 20:46:59-07:00'),\n",
" (12, '2021-07-28 21:23:49-07:00'),\n",
" (12, '2021-07-28 23:10:52-07:00'),\n",
" (12, '2021-07-29 02:19:10-07:00'),\n",
" (12, '2021-07-29 07:11:34-07:00'),\n",
" (13, '2021-07-29 12:11:48-07:00'),\n",
" (12, '2021-07-29 12:53:54-07:00'),\n",
" (12, '2021-07-29 13:34:13-07:00'),\n",
" (12, '2021-07-29 14:50:25-07:00'),\n",
" (443, '2021-07-29 15:03:10-07:00'),\n",
" (12, '2021-07-29 17:28:48-07:00'),\n",
" (12, '2021-07-29 17:34:29-07:00'),\n",
" (13, '2021-07-29 18:16:34-07:00'),\n",
" (12, '2021-07-29 18:23:13-07:00'),\n",
" (12, '2021-07-29 18:28:55-07:00')]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[(l, str(t)) for l, t in failures]"
]
},
{
"cell_type": "markdown",
"id": "4529374d",
"metadata": {},
"source": [
"## Appendix: All periods\n",
"\n",
"`F` marks a period of ping failures; `S` a period of successes."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d3682bd3",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"F 551 2021-06-05 22:31:19-07:00\n",
"S 362 2021-06-06 00:58:22-07:00\n",
"F 12 2021-06-06 02:29:07-07:00\n",
"S 1 2021-06-06 02:32:18-07:00\n",
"F 1 2021-06-06 02:32:34-07:00\n",
"S 281 2021-06-06 02:32:49-07:00\n",
"F 1 2021-06-06 03:43:16-07:00\n",
"S 4161 2021-06-06 03:43:31-07:00\n",
"F 1 2021-06-06 21:06:25-07:00\n",
"S 1353 2021-06-06 21:06:40-07:00\n",
"F 12 2021-06-07 02:45:48-07:00\n",
"S 2609 2021-06-07 02:48:59-07:00\n",
"F 13 2021-06-07 13:42:57-07:00\n",
"S 859 2021-06-07 13:46:24-07:00\n",
"F 12 2021-06-07 17:21:43-07:00\n",
"S 151 2021-06-07 17:24:54-07:00\n",
"F 13 2021-06-07 18:02:46-07:00\n",
"S 142 2021-06-07 18:06:13-07:00\n",
"F 1 2021-06-07 18:41:49-07:00\n",
"S 2124 2021-06-07 18:42:04-07:00\n",
"F 1 2021-06-08 03:34:28-07:00\n",
"S 2735 2021-06-08 03:34:44-07:00\n",
"F 12 2021-06-08 15:00:18-07:00\n",
"S 571 2021-06-08 15:03:29-07:00\n",
"F 12 2021-06-08 17:26:37-07:00\n",
"S 1695 2021-06-08 17:29:48-07:00\n",
"F 1 2021-06-09 00:34:40-07:00\n",
"S 336 2021-06-09 00:34:56-07:00\n",
"F 1 2021-06-09 01:59:09-07:00\n",
"S 3349 2021-06-09 01:59:24-07:00\n",
"F 1 2021-06-09 15:58:45-07:00\n",
"S 3687 2021-06-09 15:59:00-07:00\n",
"F 1 2021-06-10 07:23:03-07:00\n",
"S 1239 2021-06-10 07:23:18-07:00\n",
"F 13 2021-06-10 12:33:51-07:00\n",
"S 64 2021-06-10 12:37:18-07:00\n",
"F 1 2021-06-10 12:53:22-07:00\n",
"S 1642 2021-06-10 12:53:37-07:00\n",
"F 13 2021-06-10 19:45:11-07:00\n",
"S 985 2021-06-10 19:48:37-07:00\n",
"F 13 2021-06-10 23:55:32-07:00\n",
"S 1174 2021-06-10 23:58:59-07:00\n",
"F 1 2021-06-11 04:53:12-07:00\n",
"S 4274 2021-06-11 04:53:27-07:00\n",
"F 1 2021-06-11 22:44:39-07:00\n",
"S 31 2021-06-11 22:44:54-07:00\n",
"F 12 2021-06-11 22:52:41-07:00\n",
"S 1112 2021-06-11 22:55:52-07:00\n",
"F 1 2021-06-12 03:34:34-07:00\n",
"S 2777 2021-06-12 03:34:49-07:00\n",
"F 13 2021-06-12 15:10:48-07:00\n",
"S 1827 2021-06-12 15:14:16-07:00\n",
"F 12 2021-06-12 22:52:09-07:00\n",
"S 2747 2021-06-12 22:55:20-07:00\n",
"F 1 2021-06-13 10:23:48-07:00\n",
"S 519 2021-06-13 10:24:03-07:00\n",
"F 12 2021-06-13 12:34:09-07:00\n",
"S 377 2021-06-13 12:37:20-07:00\n",
"F 1 2021-06-13 14:11:52-07:00\n",
"S 550 2021-06-13 14:12:07-07:00\n",
"F 1 2021-06-13 17:58:44-07:00\n",
"S 605 2021-06-13 17:58:59-07:00\n",
"F 13 2021-06-13 20:30:46-07:00\n",
"S 1284 2021-06-13 20:34:13-07:00\n",
"F 12 2021-06-14 01:56:21-07:00\n",
"S 1833 2021-06-14 01:59:32-07:00\n",
"F 13 2021-06-14 09:39:20-07:00\n",
"S 1040 2021-06-14 09:42:47-07:00\n",
"F 13 2021-06-14 14:03:40-07:00\n",
"S 10 2021-06-14 14:07:07-07:00\n",
"F 55 2021-06-14 14:09:39-07:00\n",
"S 104 2021-06-14 14:24:14-07:00\n",
"F 1 2021-06-14 14:50:20-07:00\n",
"S 102 2021-06-14 14:50:35-07:00\n",
"F 1 2021-06-14 15:16:11-07:00\n",
"S 694 2021-06-14 15:16:26-07:00\n",
"F 12 2021-06-14 18:10:31-07:00\n",
"S 1 2021-06-14 18:13:42-07:00\n",
"F 1 2021-06-14 18:13:58-07:00\n",
"S 126 2021-06-14 18:14:13-07:00\n",
"F 13 2021-06-14 18:45:51-07:00\n",
"S 216 2021-06-14 18:49:18-07:00\n",
"F 1 2021-06-14 19:43:30-07:00\n",
"S 58 2021-06-14 19:43:45-07:00\n",
"F 1 2021-06-14 19:58:19-07:00\n",
"S 8 2021-06-14 19:58:34-07:00\n",
"F 1 2021-06-14 20:00:35-07:00\n",
"S 68 2021-06-14 20:00:50-07:00\n",
"F 1 2021-06-14 20:17:54-07:00\n",
"S 125 2021-06-14 20:18:09-07:00\n",
"F 1 2021-06-14 20:49:31-07:00\n",
"S 936 2021-06-14 20:49:46-07:00\n",
"F 1 2021-06-15 00:44:36-07:00\n",
"S 128 2021-06-15 00:44:51-07:00\n",
"F 1 2021-06-15 01:16:58-07:00\n",
"S 9 2021-06-15 01:17:13-07:00\n",
"F 1 2021-06-15 01:19:30-07:00\n",
"S 42 2021-06-15 01:19:45-07:00\n",
"F 1 2021-06-15 01:30:18-07:00\n",
"S 1564 2021-06-15 01:30:33-07:00\n",
"F 1 2021-06-15 08:02:52-07:00\n",
"S 163 2021-06-15 08:03:07-07:00\n",
"F 1 2021-06-15 08:44:01-07:00\n",
"S 162 2021-06-15 08:44:16-07:00\n",
"F 1 2021-06-15 09:24:55-07:00\n",
"S 1357 2021-06-15 09:25:10-07:00\n",
"F 1 2021-06-15 15:05:34-07:00\n",
"S 79 2021-06-15 15:05:49-07:00\n",
"F 12 2021-06-15 15:25:39-07:00\n",
"S 13 2021-06-15 15:28:51-07:00\n",
"F 1 2021-06-15 15:32:08-07:00\n",
"S 682 2021-06-15 15:32:23-07:00\n",
"F 1 2021-06-15 18:23:28-07:00\n",
"S 186 2021-06-15 18:23:43-07:00\n",
"F 1 2021-06-15 19:10:24-07:00\n",
"S 94 2021-06-15 19:10:39-07:00\n",
"F 1 2021-06-15 19:34:15-07:00\n",
"S 545 2021-06-15 19:34:30-07:00\n",
"F 12 2021-06-15 21:51:13-07:00\n",
"S 128 2021-06-15 21:54:25-07:00\n",
"F 12 2021-06-15 22:26:32-07:00\n",
"S 829 2021-06-15 22:29:43-07:00\n",
"F 13 2021-06-16 01:57:42-07:00\n",
"S 1399 2021-06-16 02:01:09-07:00\n",
"F 1 2021-06-16 07:52:05-07:00\n",
"S 695 2021-06-16 07:52:20-07:00\n",
"F 1 2021-06-16 10:46:40-07:00\n",
"S 50 2021-06-16 10:46:55-07:00\n",
"F 12 2021-06-16 10:59:29-07:00\n",
"S 143 2021-06-16 11:02:40-07:00\n",
"F 13 2021-06-16 11:38:33-07:00\n",
"S 1036 2021-06-16 11:42:00-07:00\n",
"F 1 2021-06-16 16:01:52-07:00\n",
"S 170 2021-06-16 16:02:07-07:00\n",
"F 1 2021-06-16 16:44:46-07:00\n",
"S 54 2021-06-16 16:45:01-07:00\n",
"F 1 2021-06-16 16:58:35-07:00\n",
"S 321 2021-06-16 16:58:50-07:00\n",
"F 1 2021-06-16 18:19:22-07:00\n",
"S 6 2021-06-16 18:19:37-07:00\n",
"F 1 2021-06-16 18:21:08-07:00\n",
"S 248 2021-06-16 18:21:23-07:00\n",
"F 1 2021-06-16 19:23:37-07:00\n",
"S 476 2021-06-16 19:23:52-07:00\n",
"F 1 2021-06-16 21:23:17-07:00\n",
"S 46 2021-06-16 21:23:32-07:00\n",
"F 1 2021-06-16 21:35:05-07:00\n",
"S 235 2021-06-16 21:35:20-07:00\n",
"F 1 2021-06-16 22:34:18-07:00\n",
"S 98 2021-06-16 22:34:33-07:00\n",
"F 1 2021-06-16 22:59:09-07:00\n",
"S 210 2021-06-16 22:59:24-07:00\n",
"F 1 2021-06-16 23:52:05-07:00\n",
"S 739 2021-06-16 23:52:21-07:00\n",
"F 1 2021-06-17 02:57:43-07:00\n",
"S 300 2021-06-17 02:57:58-07:00\n",
"F 1 2021-06-17 04:13:14-07:00\n",
"S 409 2021-06-17 04:13:29-07:00\n",
"F 1 2021-06-17 05:56:06-07:00\n",
"S 937 2021-06-17 05:56:21-07:00\n",
"F 1 2021-06-17 09:51:24-07:00\n",
"S 128 2021-06-17 09:51:39-07:00\n",
"F 12 2021-06-17 10:23:46-07:00\n",
"S 46 2021-06-17 10:26:58-07:00\n",
"F 1 2021-06-17 10:38:31-07:00\n",
"S 192 2021-06-17 10:38:46-07:00\n",
"F 1 2021-06-17 11:26:57-07:00\n",
"S 169 2021-06-17 11:27:12-07:00\n",
"F 1 2021-06-17 12:09:36-07:00\n",
"S 93 2021-06-17 12:09:51-07:00\n",
"F 1 2021-06-17 12:33:11-07:00\n",
"S 25 2021-06-17 12:33:27-07:00\n",
"F 1 2021-06-17 12:39:44-07:00\n",
"S 23 2021-06-17 12:39:59-07:00\n",
"F 1 2021-06-17 12:45:46-07:00\n",
"S 456 2021-06-17 12:46:01-07:00\n",
"F 1 2021-06-17 14:40:24-07:00\n",
"S 168 2021-06-17 14:40:39-07:00\n",
"F 1 2021-06-17 15:22:49-07:00\n",
"S 121 2021-06-17 15:23:04-07:00\n",
"F 1 2021-06-17 15:53:26-07:00\n",
"S 132 2021-06-17 15:53:41-07:00\n",
"F 1 2021-06-17 16:26:48-07:00\n",
"S 424 2021-06-17 16:27:03-07:00\n",
"F 1 2021-06-17 18:13:25-07:00\n",
"S 70 2021-06-17 18:13:40-07:00\n",
"F 1 2021-06-17 18:31:15-07:00\n",
"S 361 2021-06-17 18:31:30-07:00\n",
"F 1 2021-06-17 20:02:04-07:00\n",
"S 1168 2021-06-17 20:02:19-07:00\n",
"F 1 2021-06-18 00:55:19-07:00\n",
"S 587 2021-06-18 00:55:34-07:00\n",
"F 1 2021-06-18 03:22:49-07:00\n",
"S 275 2021-06-18 03:23:04-07:00\n",
"F 1042 2021-06-18 04:32:03-07:00\n",
"S 6 2021-06-18 09:10:24-07:00\n",
"F 8 2021-06-18 09:11:56-07:00\n",
"S 78 2021-06-18 09:14:03-07:00\n",
"F 1 2021-06-18 09:33:37-07:00\n",
"S 314 2021-06-18 09:33:52-07:00\n",
"F 1 2021-06-18 10:52:38-07:00\n",
"S 308 2021-06-18 10:52:53-07:00\n",
"F 12 2021-06-18 12:10:11-07:00\n",
"S 27 2021-06-18 12:13:22-07:00\n",
"F 1 2021-06-18 12:20:09-07:00\n",
"S 91 2021-06-18 12:20:24-07:00\n",
"F 1 2021-06-18 12:43:15-07:00\n",
"S 363 2021-06-18 12:43:30-07:00\n",
"F 12 2021-06-18 14:14:35-07:00\n",
"S 331 2021-06-18 14:17:46-07:00\n",
"F 1 2021-06-18 15:40:48-07:00\n",
"S 18 2021-06-18 15:41:03-07:00\n",
"F 1 2021-06-18 15:45:35-07:00\n",
"S 1301 2021-06-18 15:45:50-07:00\n",
"F 1 2021-06-18 21:12:08-07:00\n",
"S 836 2021-06-18 21:12:23-07:00\n",
"F 1 2021-06-19 00:42:05-07:00\n",
"S 584 2021-06-19 00:42:20-07:00\n",
"F 1 2021-06-19 03:08:50-07:00\n",
"S 24 2021-06-19 03:09:05-07:00\n",
"F 13 2021-06-19 03:15:07-07:00\n",
"S 448 2021-06-19 03:18:34-07:00\n",
"F 12 2021-06-19 05:10:57-07:00\n",
"S 391 2021-06-19 05:14:09-07:00\n",
"F 1 2021-06-19 06:52:14-07:00\n",
"S 499 2021-06-19 06:52:29-07:00\n",
"F 1 2021-06-19 08:57:39-07:00\n",
"S 210 2021-06-19 08:57:54-07:00\n",
"F 1 2021-06-19 09:50:36-07:00\n",
"S 81 2021-06-19 09:50:51-07:00\n",
"F 1 2021-06-19 10:11:11-07:00\n",
"S 178 2021-06-19 10:11:26-07:00\n",
"F 1 2021-06-19 10:56:05-07:00\n",
"S 722 2021-06-19 10:56:20-07:00\n",
"F 12 2021-06-19 13:57:27-07:00\n",
"S 1 2021-06-19 14:00:39-07:00\n",
"F 1 2021-06-19 14:00:55-07:00\n",
"S 978 2021-06-19 14:01:10-07:00\n",
"F 1 2021-06-19 18:06:42-07:00\n",
"S 351 2021-06-19 18:06:57-07:00\n",
"F 1 2021-06-19 19:35:07-07:00\n",
"S 26 2021-06-19 19:35:22-07:00\n",
"F 1 2021-06-19 19:41:55-07:00\n",
"S 66 2021-06-19 19:42:10-07:00\n",
"F 1 2021-06-19 19:58:46-07:00\n",
"S 48 2021-06-19 19:59:01-07:00\n",
"F 1 2021-06-19 20:11:05-07:00\n",
"S 177 2021-06-19 20:11:20-07:00\n",
"F 1 2021-06-19 20:55:49-07:00\n",
"S 3 2021-06-19 20:56:04-07:00\n",
"F 1 2021-06-19 20:56:50-07:00\n",
"S 2 2021-06-19 20:57:05-07:00\n",
"F 1 2021-06-19 20:57:37-07:00\n",
"S 385 2021-06-19 20:57:52-07:00\n",
"F 1 2021-06-19 22:34:34-07:00\n",
"S 208 2021-06-19 22:34:49-07:00\n",
"F 1 2021-06-19 23:27:04-07:00\n",
"S 595 2021-06-19 23:27:19-07:00\n",
"F 1 2021-06-20 01:56:45-07:00\n",
"S 282 2021-06-20 01:57:00-07:00\n",
"F 1 2021-06-20 03:07:49-07:00\n",
"S 279 2021-06-20 03:08:04-07:00\n",
"F 1 2021-06-20 04:18:07-07:00\n",
"S 717 2021-06-20 04:18:22-07:00\n",
"F 1 2021-06-20 07:18:24-07:00\n",
"S 881 2021-06-20 07:18:39-07:00\n",
"F 1 2021-06-20 10:59:51-07:00\n",
"S 81 2021-06-20 11:00:06-07:00\n",
"F 1 2021-06-20 11:20:27-07:00\n",
"S 203 2021-06-20 11:20:42-07:00\n",
"F 1 2021-06-20 12:11:43-07:00\n",
"S 569 2021-06-20 12:11:58-07:00\n",
"F 1 2021-06-20 14:34:54-07:00\n",
"S 21 2021-06-20 14:35:09-07:00\n",
"F 1 2021-06-20 14:40:27-07:00\n",
"S 92 2021-06-20 14:40:42-07:00\n",
"F 1 2021-06-20 15:03:49-07:00\n",
"S 769 2021-06-20 15:04:04-07:00\n",
"F 1 2021-06-20 18:17:12-07:00\n",
"S 68 2021-06-20 18:17:27-07:00\n",
"F 1 2021-06-20 18:34:33-07:00\n",
"S 124 2021-06-20 18:34:48-07:00\n",
"F 1 2021-06-20 19:05:57-07:00\n",
"S 79 2021-06-20 19:06:12-07:00\n",
"F 1 2021-06-20 19:26:04-07:00\n",
"S 507 2021-06-20 19:26:19-07:00\n",
"F 1 2021-06-20 21:33:40-07:00\n",
"S 157 2021-06-20 21:33:55-07:00\n",
"F 1 2021-06-20 22:13:22-07:00\n",
"S 1160 2021-06-20 22:13:37-07:00\n",
"F 1 2021-06-21 03:04:51-07:00\n",
"S 211 2021-06-21 03:05:06-07:00\n",
"F 1 2021-06-21 03:58:05-07:00\n",
"S 174 2021-06-21 03:58:20-07:00\n",
"F 1 2021-06-21 04:42:01-07:00\n",
"S 517 2021-06-21 04:42:17-07:00\n",
"F 1 2021-06-21 06:52:04-07:00\n",
"S 691 2021-06-21 06:52:19-07:00\n",
"F 1 2021-06-21 09:45:52-07:00\n",
"S 95 2021-06-21 09:46:07-07:00\n",
"F 2 2021-06-21 10:10:00-07:00\n",
"S 568 2021-06-21 10:10:31-07:00\n",
"F 1 2021-06-21 12:33:12-07:00\n",
"S 367 2021-06-21 12:33:27-07:00\n",
"F 1 2021-06-21 14:05:38-07:00\n",
"S 188 2021-06-21 14:05:53-07:00\n",
"F 1 2021-06-21 14:53:07-07:00\n",
"S 18 2021-06-21 14:53:22-07:00\n",
"F 12 2021-06-21 14:57:54-07:00\n",
"S 42 2021-06-21 15:01:06-07:00\n",
"F 1 2021-06-21 15:11:39-07:00\n",
"S 182 2021-06-21 15:11:54-07:00\n",
"F 1 2021-06-21 15:57:38-07:00\n",
"S 69 2021-06-21 15:57:53-07:00\n",
"F 12 2021-06-21 16:15:13-07:00\n",
"S 143 2021-06-21 16:18:25-07:00\n",
"F 1 2021-06-21 16:54:21-07:00\n",
"S 24 2021-06-21 16:54:36-07:00\n",
"F 1 2021-06-21 17:00:38-07:00\n",
"S 1 2021-06-21 17:00:53-07:00\n",
"F 1 2021-06-21 17:01:09-07:00\n",
"S 5 2021-06-21 17:01:25-07:00\n",
"F 1 2021-06-21 17:02:41-07:00\n",
"S 30 2021-06-21 17:02:56-07:00\n",
"F 1 2021-06-21 17:10:29-07:00\n",
"S 43 2021-06-21 17:10:44-07:00\n",
"F 1 2021-06-21 17:21:33-07:00\n",
"S 23 2021-06-21 17:21:48-07:00\n",
"F 11 2021-06-21 17:27:35-07:00\n",
"S 42 2021-06-21 17:30:31-07:00\n",
"F 1 2021-06-21 17:41:04-07:00\n",
"S 269 2021-06-21 17:41:19-07:00\n",
"F 1 2021-06-21 18:48:54-07:00\n",
"S 135 2021-06-21 18:49:10-07:00\n",
"F 1 2021-06-21 19:23:08-07:00\n",
"S 17 2021-06-21 19:23:23-07:00\n",
"F 1 2021-06-21 19:27:41-07:00\n",
"S 111 2021-06-21 19:27:56-07:00\n",
"F 1 2021-06-21 19:55:51-07:00\n",
"S 18 2021-06-21 19:56:06-07:00\n",
"F 1 2021-06-21 20:00:39-07:00\n",
"S 45 2021-06-21 20:00:54-07:00\n",
"F 1 2021-06-21 20:12:14-07:00\n",
"S 432 2021-06-21 20:12:29-07:00\n",
"F 12 2021-06-21 22:01:01-07:00\n",
"S 44 2021-06-21 22:04:12-07:00\n",
"F 1 2021-06-21 22:15:16-07:00\n",
"S 191 2021-06-21 22:15:31-07:00\n",
"F 1 2021-06-21 23:03:29-07:00\n",
"S 164 2021-06-21 23:03:44-07:00\n",
"F 1 2021-06-21 23:44:55-07:00\n",
"S 1342 2021-06-21 23:45:10-07:00\n",
"F 1 2021-06-25 05:21:56-07:00\n",
"S 445 2021-06-25 05:22:11-07:00\n",
"F 1 2021-06-25 07:13:54-07:00\n",
"S 764 2021-06-25 07:14:09-07:00\n",
"F 1 2021-06-25 10:26:00-07:00\n",
"S 1735 2021-06-25 10:26:15-07:00\n",
"F 12 2021-06-25 17:41:30-07:00\n",
"S 1 2021-06-25 17:44:41-07:00\n",
"F 1 2021-06-25 17:44:57-07:00\n",
"S 866 2021-06-25 17:45:12-07:00\n",
"F 12 2021-06-25 21:22:27-07:00\n",
"S 1438 2021-06-25 21:25:38-07:00\n",
"F 1 2021-06-26 03:26:23-07:00\n",
"S 2590 2021-06-26 03:26:38-07:00\n",
"F 1 2021-06-26 14:16:21-07:00\n",
"S 540 2021-06-26 14:16:36-07:00\n",
"F 12 2021-06-26 16:32:05-07:00\n",
"S 138 2021-06-26 16:35:17-07:00\n",
"F 12 2021-06-26 17:09:55-07:00\n",
"S 691 2021-06-26 17:13:06-07:00\n",
"F 13 2021-06-26 20:06:28-07:00\n",
"S 1555 2021-06-26 20:09:56-07:00\n",
"F 12 2021-06-27 02:39:59-07:00\n",
"S 2418 2021-06-27 02:43:09-07:00\n",
"F 1 2021-06-27 12:49:39-07:00\n",
"S 1917 2021-06-27 12:49:54-07:00\n",
"F 12 2021-06-27 20:50:48-07:00\n",
"S 108 2021-06-27 20:54:00-07:00\n",
"F 1 2021-06-27 21:21:06-07:00\n",
"S 361 2021-06-27 21:21:21-07:00\n",
"F 1 2021-06-27 22:51:55-07:00\n",
"S 3966 2021-06-27 22:52:10-07:00\n",
"F 2 2021-06-28 15:26:59-07:00\n",
"S 10 2021-06-28 15:27:30-07:00\n",
"F 2 2021-06-28 15:30:02-07:00\n",
"S 8 2021-06-28 15:30:33-07:00\n",
"F 1 2021-06-28 15:32:34-07:00\n",
"S 1 2021-06-28 15:32:49-07:00\n",
"F 2 2021-06-28 15:33:05-07:00\n",
"S 7 2021-06-28 15:33:36-07:00\n",
"F 1 2021-06-28 15:35:23-07:00\n",
"S 33 2021-06-28 15:35:38-07:00\n",
"F 2 2021-06-28 15:43:56-07:00\n",
"S 62 2021-06-28 15:44:27-07:00\n",
"F 2 2021-06-28 16:00:01-07:00\n",
"S 966 2021-06-28 16:00:32-07:00\n",
"F 288 2021-06-28 20:02:51-07:00\n",
"S 1133 2021-06-28 21:19:45-07:00\n",
"F 12 2021-06-29 02:04:00-07:00\n",
"S 200 2021-06-29 02:07:11-07:00\n",
"F 13 2021-06-29 02:57:22-07:00\n",
"S 1175 2021-06-29 03:00:50-07:00\n",
"F 13 2021-06-29 07:55:35-07:00\n",
"S 1277 2021-06-29 07:59:03-07:00\n",
"F 12 2021-06-29 13:19:23-07:00\n",
"S 151 2021-06-29 13:22:34-07:00\n",
"F 1 2021-06-29 14:00:27-07:00\n",
"S 525 2021-06-29 14:00:42-07:00\n",
"F 12 2021-06-29 16:12:25-07:00\n",
"S 6072 2021-06-29 16:15:36-07:00\n",
"F 12 2021-06-30 17:38:39-07:00\n",
"S 1 2021-06-30 17:41:50-07:00\n",
"F 1 2021-06-30 17:42:06-07:00\n",
"S 245 2021-06-30 17:42:21-07:00\n",
"F 1 2021-06-30 18:43:51-07:00\n",
"S 6197 2021-06-30 18:44:06-07:00\n",
"F 1 2021-07-01 20:38:31-07:00\n",
"S 5290 2021-07-01 20:38:46-07:00\n",
"F 13 2021-07-02 18:45:39-07:00\n",
"S 858 2021-07-02 18:49:07-07:00\n",
"F 13 2021-07-02 22:24:20-07:00\n",
"S 3615 2021-07-02 22:27:48-07:00\n",
"F 1 2021-07-03 13:34:31-07:00\n",
"S 242 2021-07-03 13:34:46-07:00\n",
"F 12 2021-07-03 14:35:27-07:00\n",
"S 170 2021-07-03 14:38:39-07:00\n",
"F 13 2021-07-03 15:21:18-07:00\n",
"S 157 2021-07-03 15:24:46-07:00\n",
"F 12 2021-07-03 16:04:10-07:00\n",
"S 1 2021-07-03 16:07:21-07:00\n",
"F 1 2021-07-03 16:07:37-07:00\n",
"S 729 2021-07-03 16:07:52-07:00\n",
"F 12 2021-07-03 19:10:45-07:00\n",
"S 135 2021-07-03 19:13:56-07:00\n",
"F 13 2021-07-03 19:47:49-07:00\n",
"S 1582 2021-07-03 19:51:16-07:00\n",
"F 12 2021-07-04 02:28:08-07:00\n",
"S 932 2021-07-04 02:31:20-07:00\n",
"F 1 2021-07-04 06:25:06-07:00\n",
"S 968 2021-07-04 06:25:21-07:00\n",
"F 12 2021-07-04 10:28:10-07:00\n",
"S 2488 2021-07-04 10:31:21-07:00\n",
"F 12 2021-07-04 20:55:28-07:00\n",
"S 1680 2021-07-04 20:58:39-07:00\n",
"F 12 2021-07-05 04:00:05-07:00\n",
"S 4398 2021-07-05 04:03:16-07:00\n",
"F 13 2021-07-05 22:26:31-07:00\n",
"S 159 2021-07-05 22:29:58-07:00\n",
"F 13 2021-07-05 23:09:52-07:00\n",
"S 365 2021-07-05 23:13:19-07:00\n",
"F 12 2021-07-06 00:44:54-07:00\n",
"S 1 2021-07-06 00:48:05-07:00\n",
"F 1 2021-07-06 00:48:21-07:00\n",
"S 221 2021-07-06 00:48:36-07:00\n",
"F 1 2021-07-06 01:44:03-07:00\n",
"S 4978 2021-07-06 01:44:18-07:00\n",
"F 1 2021-07-06 22:33:01-07:00\n",
"S 5445 2021-07-06 22:33:17-07:00\n",
"F 1 2021-07-07 21:19:11-07:00\n",
"S 351 2021-07-07 21:19:26-07:00\n",
"F 1 2021-07-07 22:47:30-07:00\n",
"S 956 2021-07-07 22:47:45-07:00\n",
"F 1823 2021-07-08 02:47:35-07:00\n",
"S 1008 2021-07-08 10:54:34-07:00\n",
"F 1 2021-07-08 15:07:26-07:00\n",
"S 54 2021-07-08 15:07:41-07:00\n",
"F 1 2021-07-08 15:21:14-07:00\n",
"S 308 2021-07-08 15:21:29-07:00\n",
"F 12 2021-07-08 16:38:45-07:00\n",
"S 125 2021-07-08 16:41:57-07:00\n",
"F 1 2021-07-08 17:13:19-07:00\n",
"S 302 2021-07-08 17:13:34-07:00\n",
"F 12 2021-07-08 18:29:20-07:00\n",
"S 688 2021-07-08 18:32:32-07:00\n",
"F 1 2021-07-08 21:25:09-07:00\n",
"S 156 2021-07-08 21:25:24-07:00\n",
"F 1 2021-07-08 22:04:33-07:00\n",
"S 70 2021-07-08 22:04:48-07:00\n",
"F 1 2021-07-08 22:22:22-07:00\n",
"S 39 2021-07-08 22:22:37-07:00\n",
"F 1 2021-07-08 22:32:26-07:00\n",
"S 220 2021-07-08 22:32:41-07:00\n",
"F 12 2021-07-08 23:27:53-07:00\n",
"S 134 2021-07-08 23:31:04-07:00\n",
"F 12 2021-07-09 00:04:42-07:00\n",
"S 437 2021-07-09 00:07:53-07:00\n",
"F 12 2021-07-09 01:57:32-07:00\n",
"S 1320 2021-07-09 02:00:43-07:00\n",
"F 1 2021-07-09 07:31:51-07:00\n",
"S 1036 2021-07-09 07:32:06-07:00\n",
"F 13 2021-07-09 11:52:00-07:00\n",
"S 2041 2021-07-09 11:55:27-07:00\n",
"F 12 2021-07-09 20:27:23-07:00\n",
"S 628 2021-07-09 20:30:35-07:00\n",
"F 12 2021-07-09 23:08:08-07:00\n",
"S 209 2021-07-09 23:11:19-07:00\n",
"F 1 2021-07-10 00:03:46-07:00\n",
"S 518 2021-07-10 00:04:01-07:00\n",
"F 13 2021-07-10 02:13:59-07:00\n",
"S 1284 2021-07-10 02:17:26-07:00\n",
"F 2 2021-07-10 07:39:37-07:00\n",
"S 19 2021-07-10 07:40:08-07:00\n",
"F 1 2021-07-10 07:44:56-07:00\n",
"S 2 2021-07-10 07:45:11-07:00\n",
"F 2 2021-07-10 07:45:42-07:00\n",
"S 37 2021-07-10 07:46:13-07:00\n",
"F 1 2021-07-10 07:55:32-07:00\n",
"S 24 2021-07-10 07:55:47-07:00\n",
"F 1 2021-07-10 08:01:51-07:00\n",
"S 6 2021-07-10 08:02:06-07:00\n",
"F 2 2021-07-10 08:03:37-07:00\n",
"S 16 2021-07-10 08:04:08-07:00\n",
"F 1 2021-07-10 08:08:11-07:00\n",
"S 31 2021-07-10 08:08:26-07:00\n",
"F 1 2021-07-10 08:16:14-07:00\n",
"S 17 2021-07-10 08:16:29-07:00\n",
"F 2 2021-07-10 08:20:47-07:00\n",
"S 1 2021-07-10 08:21:18-07:00\n",
"F 1 2021-07-10 08:21:34-07:00\n",
"S 6 2021-07-10 08:21:49-07:00\n",
"F 1 2021-07-10 08:23:21-07:00\n",
"S 23 2021-07-10 08:23:36-07:00\n",
"F 1 2021-07-10 08:29:24-07:00\n",
"S 9 2021-07-10 08:29:39-07:00\n",
"F 1 2021-07-10 08:31:56-07:00\n",
"S 2 2021-07-10 08:32:11-07:00\n",
"F 2 2021-07-10 08:32:42-07:00\n",
"S 1 2021-07-10 08:33:13-07:00\n",
"F 1 2021-07-10 08:33:29-07:00\n",
"S 2 2021-07-10 08:33:44-07:00\n",
"F 1 2021-07-10 08:34:16-07:00\n",
"S 2 2021-07-10 08:34:31-07:00\n",
"F 1 2021-07-10 08:35:02-07:00\n",
"S 9 2021-07-10 08:35:17-07:00\n",
"F 1 2021-07-10 08:37:34-07:00\n",
"S 9 2021-07-10 08:37:49-07:00\n",
"F 1 2021-07-10 08:40:06-07:00\n",
"S 1527 2021-07-10 08:40:21-07:00\n",
"F 12 2021-07-10 15:03:25-07:00\n",
"S 1 2021-07-10 15:06:36-07:00\n",
"F 1 2021-07-10 15:06:52-07:00\n",
"S 131 2021-07-10 15:07:07-07:00\n",
"F 12 2021-07-10 15:39:59-07:00\n",
"S 418 2021-07-10 15:43:11-07:00\n",
"F 12 2021-07-10 17:28:02-07:00\n",
"S 1 2021-07-10 17:31:14-07:00\n",
"F 1 2021-07-10 17:31:30-07:00\n",
"S 277 2021-07-10 17:31:45-07:00\n",
"F 12 2021-07-10 18:41:14-07:00\n",
"S 139 2021-07-10 18:44:26-07:00\n",
"F 12 2021-07-10 19:19:19-07:00\n",
"S 3340 2021-07-10 19:22:30-07:00\n",
"F 1 2021-07-11 09:20:17-07:00\n",
"S 2071 2021-07-11 09:20:32-07:00\n",
"F 13 2021-07-11 18:00:00-07:00\n",
"S 134 2021-07-11 18:03:27-07:00\n",
"F 12 2021-07-11 18:37:05-07:00\n",
"S 554 2021-07-11 18:40:16-07:00\n",
"F 13 2021-07-11 20:59:15-07:00\n",
"S 4274 2021-07-11 21:02:43-07:00\n",
"F 3 2021-07-12 14:54:47-07:00\n",
"S 637 2021-07-12 14:55:35-07:00\n",
"F 12 2021-07-12 17:35:23-07:00\n",
"S 1197 2021-07-12 17:38:35-07:00\n",
"F 13 2021-07-12 22:38:52-07:00\n",
"S 2639 2021-07-12 22:42:20-07:00\n",
"F 1 2021-07-13 09:44:20-07:00\n",
"S 2010 2021-07-13 09:44:35-07:00\n",
"F 13 2021-07-13 18:08:49-07:00\n",
"S 680 2021-07-13 18:12:16-07:00\n",
"F 1 2021-07-13 21:02:51-07:00\n",
"S 216 2021-07-13 21:03:06-07:00\n",
"F 13 2021-07-13 21:57:18-07:00\n",
"S 795 2021-07-13 22:00:45-07:00\n",
"F 12 2021-07-14 01:20:11-07:00\n",
"S 2206 2021-07-14 01:23:22-07:00\n",
"F 1 2021-07-14 10:36:45-07:00\n",
"S 153 2021-07-14 10:37:00-07:00\n",
"F 1 2021-07-14 11:15:24-07:00\n",
"S 139 2021-07-14 11:15:39-07:00\n",
"F 1 2021-07-14 11:50:32-07:00\n",
"S 277 2021-07-14 11:50:47-07:00\n",
"F 1 2021-07-14 13:00:16-07:00\n",
"S 973 2021-07-14 13:00:32-07:00\n",
"F 13 2021-07-14 17:04:37-07:00\n",
"S 450 2021-07-14 17:08:04-07:00\n",
"F 12 2021-07-14 19:00:58-07:00\n",
"S 143 2021-07-14 19:04:09-07:00\n",
"F 12 2021-07-14 19:40:03-07:00\n",
"S 1 2021-07-14 19:43:14-07:00\n",
"F 1 2021-07-14 19:43:30-07:00\n",
"S 4430 2021-07-14 19:43:45-07:00\n",
"F 13 2021-07-15 14:14:57-07:00\n",
"S 1 2021-07-15 14:18:25-07:00\n",
"F 1 2021-07-15 14:18:41-07:00\n",
"S 640 2021-07-15 14:18:56-07:00\n",
"F 1 2021-07-15 16:59:28-07:00\n",
"S 1479 2021-07-15 16:59:43-07:00\n",
"F 13 2021-07-15 23:10:44-07:00\n",
"S 4412 2021-07-15 23:14:11-07:00\n",
"F 12 2021-07-16 17:40:55-07:00\n",
"S 1318 2021-07-16 17:44:07-07:00\n",
"F 12 2021-07-16 23:14:46-07:00\n",
"S 1 2021-07-16 23:17:57-07:00\n",
"F 1 2021-07-16 23:18:13-07:00\n",
"S 550 2021-07-16 23:18:29-07:00\n",
"F 12 2021-07-17 01:36:27-07:00\n",
"S 1 2021-07-17 01:39:38-07:00\n",
"F 1 2021-07-17 01:39:54-07:00\n",
"S 676 2021-07-17 01:40:10-07:00\n",
"F 13 2021-07-17 04:29:45-07:00\n",
"S 2798 2021-07-17 04:33:12-07:00\n",
"F 12 2021-07-17 16:15:05-07:00\n",
"S 468 2021-07-17 16:18:17-07:00\n",
"F 1 2021-07-17 18:15:41-07:00\n",
"S 367 2021-07-17 18:15:56-07:00\n",
"F 12 2021-07-17 19:48:00-07:00\n",
"S 1125 2021-07-17 19:51:11-07:00\n",
"F 12 2021-07-18 00:33:22-07:00\n",
"S 678 2021-07-18 00:36:33-07:00\n",
"F 12 2021-07-18 03:26:37-07:00\n",
"S 1 2021-07-18 03:29:49-07:00\n",
"F 1 2021-07-18 03:30:05-07:00\n",
"S 231 2021-07-18 03:30:20-07:00\n",
"F 546 2021-07-18 04:28:17-07:00\n",
"S 305 2021-07-18 06:54:03-07:00\n",
"F 1 2021-07-18 08:10:35-07:00\n",
"S 806 2021-07-18 08:10:50-07:00\n",
"F 1 2021-07-18 11:33:01-07:00\n",
"S 508 2021-07-18 11:33:16-07:00\n",
"F 12 2021-07-18 13:40:42-07:00\n",
"S 1643 2021-07-18 13:43:53-07:00\n",
"F 12 2021-07-18 20:36:03-07:00\n",
"S 1 2021-07-18 20:39:14-07:00\n",
"F 1 2021-07-18 20:39:30-07:00\n",
"S 134 2021-07-18 20:39:46-07:00\n",
"F 13 2021-07-18 21:13:23-07:00\n",
"S 134 2021-07-18 21:16:50-07:00\n",
"F 154 2021-07-18 21:50:28-07:00\n",
"S 3411 2021-07-18 22:31:35-07:00\n",
"F 13 2021-07-19 12:47:15-07:00\n",
"S 1106 2021-07-19 12:50:42-07:00\n",
"F 1 2021-07-19 17:28:11-07:00\n",
"S 194 2021-07-19 17:28:26-07:00\n",
"F 1 2021-07-19 18:17:07-07:00\n",
"S 139 2021-07-19 18:17:22-07:00\n",
"F 12 2021-07-19 18:52:16-07:00\n",
"S 1 2021-07-19 18:55:27-07:00\n",
"F 1 2021-07-19 18:55:43-07:00\n",
"S 404 2021-07-19 18:55:58-07:00\n",
"F 13 2021-07-19 20:37:21-07:00\n",
"S 550 2021-07-19 20:40:48-07:00\n",
"F 13 2021-07-19 22:58:48-07:00\n",
"S 140 2021-07-19 23:02:16-07:00\n",
"F 12 2021-07-19 23:37:24-07:00\n",
"S 1 2021-07-19 23:40:34-07:00\n",
"F 1 2021-07-19 23:40:50-07:00\n",
"S 1087 2021-07-19 23:41:05-07:00\n",
"F 12 2021-07-20 04:13:48-07:00\n",
"S 1684 2021-07-20 04:16:59-07:00\n",
"F 366 2021-07-20 11:19:29-07:00\n",
"S 63 2021-07-20 12:55:12-07:00\n",
"F 1 2021-07-20 13:11:01-07:00\n",
"S 4 2021-07-20 13:11:16-07:00\n",
"F 4 2021-07-20 13:12:18-07:00\n",
"S 1 2021-07-20 13:13:20-07:00\n",
"F 4 2021-07-20 13:13:36-07:00\n",
"S 7 2021-07-20 13:14:37-07:00\n",
"F 1 2021-07-20 13:16:24-07:00\n",
"S 764 2021-07-20 13:16:39-07:00\n",
"F 13 2021-07-20 16:28:19-07:00\n",
"S 126 2021-07-20 16:31:45-07:00\n",
"F 1 2021-07-20 17:03:22-07:00\n",
"S 245 2021-07-20 17:03:37-07:00\n",
"F 1 2021-07-20 18:05:06-07:00\n",
"S 58 2021-07-20 18:05:21-07:00\n",
"F 12 2021-07-20 18:19:55-07:00\n",
"S 1 2021-07-20 18:23:05-07:00\n",
"F 1 2021-07-20 18:23:21-07:00\n",
"S 132 2021-07-20 18:23:36-07:00\n",
"F 12 2021-07-20 18:56:44-07:00\n",
"S 130 2021-07-20 18:59:50-07:00\n",
"F 12 2021-07-20 19:32:27-07:00\n",
"S 86 2021-07-20 19:35:36-07:00\n",
"F 1 2021-07-20 19:57:12-07:00\n",
"S 1379 2021-07-20 19:57:27-07:00\n",
"F 13 2021-07-21 01:43:24-07:00\n",
"S 683 2021-07-21 01:46:52-07:00\n",
"F 13 2021-07-21 04:38:12-07:00\n",
"S 3177 2021-07-21 04:41:39-07:00\n",
"F 13 2021-07-21 17:58:40-07:00\n",
"S 697 2021-07-21 18:02:07-07:00\n",
"F 12 2021-07-21 20:56:59-07:00\n",
"S 470 2021-07-21 21:00:09-07:00\n",
"F 1 2021-07-21 22:58:04-07:00\n",
"S 598 2021-07-21 22:58:19-07:00\n",
"F 1 2021-07-22 01:28:20-07:00\n",
"S 2775 2021-07-22 01:28:35-07:00\n",
"F 1 2021-07-22 13:04:44-07:00\n",
"S 263 2021-07-22 13:04:59-07:00\n",
"F 2 2021-07-22 14:10:59-07:00\n",
"S 2 2021-07-22 14:11:29-07:00\n",
"F 2 2021-07-22 14:12:00-07:00\n",
"S 6 2021-07-22 14:12:31-07:00\n",
"F 2 2021-07-22 14:14:03-07:00\n",
"S 1 2021-07-22 14:14:34-07:00\n",
"F 3 2021-07-22 14:14:50-07:00\n",
"S 985 2021-07-22 14:15:37-07:00\n",
"F 12 2021-07-22 18:22:44-07:00\n",
"S 1370 2021-07-22 18:25:54-07:00\n",
"F 12 2021-07-23 00:09:36-07:00\n",
"S 1890 2021-07-23 00:12:47-07:00\n",
"F 1 2021-07-23 08:06:52-07:00\n",
"S 2283 2021-07-23 08:07:07-07:00\n",
"F 1 2021-07-23 17:39:47-07:00\n",
"S 195 2021-07-23 17:40:02-07:00\n",
"F 12 2021-07-23 18:28:57-07:00\n",
"S 135 2021-07-23 18:32:08-07:00\n",
"F 13 2021-07-23 19:06:01-07:00\n",
"S 273 2021-07-23 19:09:25-07:00\n",
"F 12 2021-07-23 20:17:55-07:00\n",
"S 681 2021-07-23 20:21:07-07:00\n",
"F 12 2021-07-23 23:11:59-07:00\n",
"S 1 2021-07-23 23:15:10-07:00\n",
"F 1 2021-07-23 23:15:26-07:00\n",
"S 134 2021-07-23 23:15:41-07:00\n",
"F 13 2021-07-23 23:49:19-07:00\n",
"S 66 2021-07-23 23:52:45-07:00\n",
"F 1 2021-07-24 00:09:20-07:00\n",
"S 224 2021-07-24 00:09:35-07:00\n",
"F 13 2021-07-24 01:05:47-07:00\n",
"S 340 2021-07-24 01:09:15-07:00\n",
"F 12 2021-07-24 02:34:33-07:00\n",
"S 195 2021-07-24 02:37:43-07:00\n",
"F 12 2021-07-24 03:26:39-07:00\n",
"S 667 2021-07-24 03:29:50-07:00\n",
"F 1 2021-07-24 06:17:09-07:00\n",
"S 2819 2021-07-24 06:17:24-07:00\n",
"F 12 2021-07-24 18:04:33-07:00\n",
"S 1 2021-07-24 18:07:44-07:00\n",
"F 1 2021-07-24 18:08:00-07:00\n",
"S 65 2021-07-24 18:08:15-07:00\n",
"F 1 2021-07-24 18:24:34-07:00\n",
"S 64 2021-07-24 18:24:49-07:00\n",
"F 12 2021-07-24 18:40:53-07:00\n",
"S 270 2021-07-24 18:44:04-07:00\n",
"F 13 2021-07-24 19:51:49-07:00\n",
"S 547 2021-07-24 19:55:16-07:00\n",
"F 1 2021-07-24 22:12:30-07:00\n",
"S 59 2021-07-24 22:12:45-07:00\n",
"F 1 2021-07-24 22:27:35-07:00\n",
"S 213 2021-07-24 22:27:50-07:00\n",
"F 12 2021-07-24 23:21:17-07:00\n",
"S 206 2021-07-24 23:24:28-07:00\n",
"F 1 2021-07-25 00:16:10-07:00\n",
"S 3161 2021-07-25 00:16:25-07:00\n",
"F 12 2021-07-25 13:29:24-07:00\n",
"S 1 2021-07-25 13:32:35-07:00\n",
"F 1 2021-07-25 13:32:51-07:00\n",
"S 1325 2021-07-25 13:33:07-07:00\n",
"F 13 2021-07-25 19:05:32-07:00\n",
"S 408 2021-07-25 19:08:58-07:00\n",
"F 12 2021-07-25 20:51:20-07:00\n",
"S 129 2021-07-25 20:54:31-07:00\n",
"F 13 2021-07-25 21:26:53-07:00\n",
"S 270 2021-07-25 21:30:20-07:00\n",
"F 12 2021-07-25 22:38:05-07:00\n",
"S 917 2021-07-25 22:41:16-07:00\n",
"F 12 2021-07-26 02:31:18-07:00\n",
"S 1556 2021-07-26 02:34:29-07:00\n",
"F 12 2021-07-26 09:04:51-07:00\n",
"S 1149 2021-07-26 09:08:01-07:00\n",
"F 2 2021-07-26 13:56:19-07:00\n",
"S 83 2021-07-26 13:56:50-07:00\n",
"F 1 2021-07-26 14:17:41-07:00\n",
"S 1256 2021-07-26 14:17:56-07:00\n",
"F 1 2021-07-26 19:33:04-07:00\n",
"S 1211 2021-07-26 19:33:19-07:00\n",
"F 13 2021-07-27 00:37:09-07:00\n",
"S 944 2021-07-27 00:40:36-07:00\n",
"F 1 2021-07-27 04:37:27-07:00\n",
"S 503 2021-07-27 04:37:42-07:00\n",
"F 1 2021-07-27 06:43:54-07:00\n",
"S 1274 2021-07-27 06:44:09-07:00\n",
"F 1 2021-07-27 12:03:48-07:00\n",
"S 466 2021-07-27 12:04:03-07:00\n",
"F 1 2021-07-27 14:00:59-07:00\n",
"S 316 2021-07-27 14:01:14-07:00\n",
"F 1 2021-07-27 15:20:32-07:00\n",
"S 252 2021-07-27 15:20:47-07:00\n",
"F 1 2021-07-27 16:24:01-07:00\n",
"S 1083 2021-07-27 16:24:16-07:00\n",
"F 12 2021-07-27 20:55:59-07:00\n",
"S 343 2021-07-27 20:59:10-07:00\n",
"F 1 2021-07-27 22:25:14-07:00\n",
"S 1142 2021-07-27 22:25:29-07:00\n",
"F 1 2021-07-28 03:12:01-07:00\n",
"S 348 2021-07-28 03:12:16-07:00\n",
"F 12 2021-07-28 04:39:36-07:00\n",
"S 429 2021-07-28 04:42:46-07:00\n",
"F 12 2021-07-28 06:30:24-07:00\n",
"S 26 2021-07-28 06:33:35-07:00\n",
"F 1 2021-07-28 06:40:08-07:00\n",
"S 651 2021-07-28 06:40:23-07:00\n",
"F 1 2021-07-28 09:23:43-07:00\n",
"S 59 2021-07-28 09:23:58-07:00\n",
"F 12 2021-07-28 09:38:47-07:00\n",
"S 1340 2021-07-28 09:41:58-07:00\n",
"F 12 2021-07-28 15:18:11-07:00\n",
"S 856 2021-07-28 15:21:22-07:00\n",
"F 12 2021-07-28 18:56:10-07:00\n",
"S 429 2021-07-28 18:59:21-07:00\n",
"F 12 2021-07-28 20:46:59-07:00\n",
"S 134 2021-07-28 20:50:10-07:00\n",
"F 12 2021-07-28 21:23:49-07:00\n",
"S 414 2021-07-28 21:27:00-07:00\n",
"F 12 2021-07-28 23:10:52-07:00\n",
"S 738 2021-07-28 23:14:03-07:00\n",
"F 12 2021-07-29 02:19:10-07:00\n",
"S 1153 2021-07-29 02:22:21-07:00\n",
"F 12 2021-07-29 07:11:34-07:00\n",
"S 775 2021-07-29 07:14:45-07:00\n",
"F 1 2021-07-29 10:29:12-07:00\n",
"S 408 2021-07-29 10:29:27-07:00\n",
"F 13 2021-07-29 12:11:48-07:00\n",
"S 154 2021-07-29 12:15:15-07:00\n",
"F 12 2021-07-29 12:53:54-07:00\n",
"S 148 2021-07-29 12:57:04-07:00\n",
"F 12 2021-07-29 13:34:13-07:00\n",
"S 68 2021-07-29 13:37:23-07:00\n",
"F 1 2021-07-29 13:54:27-07:00\n",
"S 222 2021-07-29 13:54:42-07:00\n",
"F 12 2021-07-29 14:50:25-07:00\n",
"S 1 2021-07-29 14:53:36-07:00\n",
"F 1 2021-07-29 14:53:52-07:00\n",
"S 36 2021-07-29 14:54:07-07:00\n",
"F 443 2021-07-29 15:03:10-07:00\n",
"S 120 2021-07-29 16:58:41-07:00\n",
"F 12 2021-07-29 17:28:48-07:00\n",
"S 10 2021-07-29 17:31:58-07:00\n",
"F 12 2021-07-29 17:34:29-07:00\n",
"S 155 2021-07-29 17:37:40-07:00\n",
"F 13 2021-07-29 18:16:34-07:00\n",
"S 13 2021-07-29 18:19:57-07:00\n",
"F 12 2021-07-29 18:23:13-07:00\n",
"S 10 2021-07-29 18:26:24-07:00\n",
"F 12 2021-07-29 18:28:55-07:00\n",
"S 2 2021-07-29 18:32:04-07:00\n"
]
}
],
"source": [
"for status, length, start in periods:\n",
" print(f\"{status} {length: 5} {start}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment