parent
538c76c1eb
commit
6ba10d386f
@ -0,0 +1,976 @@
|
||||
[1518-03-31 00:26] falls asleep
|
||||
[1518-04-03 00:38] wakes up
|
||||
[1518-11-21 00:14] falls asleep
|
||||
[1518-07-21 00:34] wakes up
|
||||
[1518-04-02 00:20] falls asleep
|
||||
[1518-08-26 00:14] wakes up
|
||||
[1518-05-22 00:45] wakes up
|
||||
[1518-08-18 00:57] wakes up
|
||||
[1518-05-20 00:02] falls asleep
|
||||
[1518-07-06 00:57] falls asleep
|
||||
[1518-07-04 00:49] falls asleep
|
||||
[1518-10-23 23:49] Guard #659 begins shift
|
||||
[1518-08-06 00:07] falls asleep
|
||||
[1518-06-24 00:58] wakes up
|
||||
[1518-04-27 00:13] falls asleep
|
||||
[1518-06-08 00:01] Guard #179 begins shift
|
||||
[1518-06-03 00:00] Guard #659 begins shift
|
||||
[1518-10-03 00:35] wakes up
|
||||
[1518-04-30 00:20] wakes up
|
||||
[1518-10-15 23:59] Guard #1699 begins shift
|
||||
[1518-06-07 00:39] wakes up
|
||||
[1518-09-25 00:10] falls asleep
|
||||
[1518-09-27 00:30] falls asleep
|
||||
[1518-11-03 00:36] falls asleep
|
||||
[1518-06-26 00:55] wakes up
|
||||
[1518-04-14 00:57] wakes up
|
||||
[1518-08-07 00:45] falls asleep
|
||||
[1518-06-02 00:56] wakes up
|
||||
[1518-05-13 00:02] Guard #223 begins shift
|
||||
[1518-04-20 00:45] falls asleep
|
||||
[1518-11-14 23:59] Guard #1069 begins shift
|
||||
[1518-09-17 00:58] wakes up
|
||||
[1518-04-07 00:34] wakes up
|
||||
[1518-09-27 00:00] Guard #419 begins shift
|
||||
[1518-03-21 00:59] wakes up
|
||||
[1518-07-26 00:01] Guard #457 begins shift
|
||||
[1518-08-18 00:04] Guard #659 begins shift
|
||||
[1518-04-20 00:01] Guard #659 begins shift
|
||||
[1518-04-17 23:57] Guard #3547 begins shift
|
||||
[1518-07-10 23:59] Guard #2753 begins shift
|
||||
[1518-06-28 00:59] wakes up
|
||||
[1518-10-26 00:01] Guard #3547 begins shift
|
||||
[1518-04-15 00:49] wakes up
|
||||
[1518-09-14 00:04] Guard #179 begins shift
|
||||
[1518-07-21 00:02] falls asleep
|
||||
[1518-07-23 00:38] falls asleep
|
||||
[1518-04-04 23:59] Guard #223 begins shift
|
||||
[1518-09-15 00:12] falls asleep
|
||||
[1518-06-01 00:32] wakes up
|
||||
[1518-08-15 00:22] falls asleep
|
||||
[1518-10-05 00:34] wakes up
|
||||
[1518-10-01 00:58] wakes up
|
||||
[1518-05-05 00:07] falls asleep
|
||||
[1518-10-23 00:34] wakes up
|
||||
[1518-10-08 00:39] falls asleep
|
||||
[1518-08-27 00:14] falls asleep
|
||||
[1518-05-17 00:53] wakes up
|
||||
[1518-08-08 00:39] falls asleep
|
||||
[1518-07-28 00:03] falls asleep
|
||||
[1518-05-03 00:08] falls asleep
|
||||
[1518-10-12 00:52] falls asleep
|
||||
[1518-04-20 00:58] wakes up
|
||||
[1518-04-27 00:20] wakes up
|
||||
[1518-05-14 23:58] Guard #1933 begins shift
|
||||
[1518-07-12 23:59] Guard #2953 begins shift
|
||||
[1518-10-12 00:00] Guard #223 begins shift
|
||||
[1518-10-21 00:38] falls asleep
|
||||
[1518-04-12 00:40] falls asleep
|
||||
[1518-04-05 00:58] wakes up
|
||||
[1518-08-16 00:34] falls asleep
|
||||
[1518-07-30 23:58] Guard #419 begins shift
|
||||
[1518-10-17 00:55] wakes up
|
||||
[1518-08-06 23:59] Guard #409 begins shift
|
||||
[1518-06-17 00:47] falls asleep
|
||||
[1518-06-29 00:46] falls asleep
|
||||
[1518-09-30 00:58] wakes up
|
||||
[1518-06-29 00:53] wakes up
|
||||
[1518-03-30 00:03] Guard #457 begins shift
|
||||
[1518-11-07 00:22] falls asleep
|
||||
[1518-05-04 23:56] Guard #2953 begins shift
|
||||
[1518-09-23 00:19] wakes up
|
||||
[1518-10-12 00:16] falls asleep
|
||||
[1518-08-08 00:00] Guard #659 begins shift
|
||||
[1518-11-15 00:31] wakes up
|
||||
[1518-08-16 00:58] wakes up
|
||||
[1518-08-18 23:59] Guard #3347 begins shift
|
||||
[1518-07-06 23:58] Guard #2039 begins shift
|
||||
[1518-10-15 00:52] falls asleep
|
||||
[1518-09-18 00:36] wakes up
|
||||
[1518-06-17 23:57] Guard #409 begins shift
|
||||
[1518-09-19 23:56] Guard #647 begins shift
|
||||
[1518-10-10 00:30] wakes up
|
||||
[1518-11-18 23:58] Guard #2953 begins shift
|
||||
[1518-10-27 00:19] falls asleep
|
||||
[1518-08-05 00:51] wakes up
|
||||
[1518-07-15 23:58] Guard #1699 begins shift
|
||||
[1518-10-14 00:02] Guard #647 begins shift
|
||||
[1518-06-04 00:00] Guard #1153 begins shift
|
||||
[1518-04-16 00:00] Guard #1933 begins shift
|
||||
[1518-06-25 00:28] falls asleep
|
||||
[1518-05-13 23:57] Guard #419 begins shift
|
||||
[1518-07-09 23:58] Guard #503 begins shift
|
||||
[1518-05-08 00:16] falls asleep
|
||||
[1518-08-12 00:10] falls asleep
|
||||
[1518-09-16 00:47] falls asleep
|
||||
[1518-07-06 00:04] Guard #3547 begins shift
|
||||
[1518-06-08 00:22] falls asleep
|
||||
[1518-07-09 00:02] Guard #2953 begins shift
|
||||
[1518-08-22 23:58] Guard #179 begins shift
|
||||
[1518-05-11 00:51] wakes up
|
||||
[1518-06-05 00:59] wakes up
|
||||
[1518-10-03 00:25] wakes up
|
||||
[1518-05-05 00:17] wakes up
|
||||
[1518-11-10 23:58] Guard #457 begins shift
|
||||
[1518-09-17 00:04] Guard #409 begins shift
|
||||
[1518-08-17 00:02] falls asleep
|
||||
[1518-08-13 00:32] falls asleep
|
||||
[1518-09-02 00:00] Guard #419 begins shift
|
||||
[1518-07-24 00:48] falls asleep
|
||||
[1518-04-10 00:32] wakes up
|
||||
[1518-04-20 00:42] wakes up
|
||||
[1518-03-24 00:03] Guard #223 begins shift
|
||||
[1518-11-21 23:50] Guard #2953 begins shift
|
||||
[1518-09-20 00:57] wakes up
|
||||
[1518-08-11 00:42] wakes up
|
||||
[1518-08-08 00:49] wakes up
|
||||
[1518-06-12 23:47] Guard #647 begins shift
|
||||
[1518-03-26 00:58] wakes up
|
||||
[1518-11-02 00:55] wakes up
|
||||
[1518-10-22 00:03] Guard #1069 begins shift
|
||||
[1518-07-14 23:59] Guard #401 begins shift
|
||||
[1518-04-30 00:15] falls asleep
|
||||
[1518-06-21 00:37] wakes up
|
||||
[1518-07-15 00:54] wakes up
|
||||
[1518-05-14 00:50] wakes up
|
||||
[1518-09-16 00:53] wakes up
|
||||
[1518-09-05 00:01] Guard #2039 begins shift
|
||||
[1518-05-25 23:59] Guard #2753 begins shift
|
||||
[1518-10-28 00:30] falls asleep
|
||||
[1518-10-06 23:56] Guard #2953 begins shift
|
||||
[1518-08-21 00:01] Guard #419 begins shift
|
||||
[1518-04-25 23:59] Guard #2693 begins shift
|
||||
[1518-11-16 00:55] wakes up
|
||||
[1518-05-12 00:47] wakes up
|
||||
[1518-07-03 00:39] falls asleep
|
||||
[1518-05-10 00:54] falls asleep
|
||||
[1518-03-30 00:57] wakes up
|
||||
[1518-11-20 00:56] falls asleep
|
||||
[1518-07-23 00:11] wakes up
|
||||
[1518-10-12 00:59] wakes up
|
||||
[1518-04-25 00:03] Guard #1153 begins shift
|
||||
[1518-11-05 23:57] Guard #179 begins shift
|
||||
[1518-03-30 23:53] Guard #691 begins shift
|
||||
[1518-05-15 23:57] Guard #223 begins shift
|
||||
[1518-08-23 00:31] falls asleep
|
||||
[1518-08-22 00:54] wakes up
|
||||
[1518-09-07 00:53] falls asleep
|
||||
[1518-11-20 00:00] Guard #1699 begins shift
|
||||
[1518-08-13 00:35] wakes up
|
||||
[1518-09-15 00:59] wakes up
|
||||
[1518-10-27 00:42] wakes up
|
||||
[1518-05-27 00:22] wakes up
|
||||
[1518-08-18 00:25] wakes up
|
||||
[1518-08-04 00:28] falls asleep
|
||||
[1518-09-24 00:57] wakes up
|
||||
[1518-07-24 00:57] wakes up
|
||||
[1518-07-16 00:51] wakes up
|
||||
[1518-05-25 00:37] falls asleep
|
||||
[1518-06-01 00:14] falls asleep
|
||||
[1518-10-05 00:20] falls asleep
|
||||
[1518-04-15 00:11] wakes up
|
||||
[1518-05-23 23:56] Guard #2953 begins shift
|
||||
[1518-11-22 00:04] falls asleep
|
||||
[1518-09-11 00:59] wakes up
|
||||
[1518-10-23 00:44] wakes up
|
||||
[1518-11-13 00:41] falls asleep
|
||||
[1518-10-06 00:04] Guard #2753 begins shift
|
||||
[1518-04-25 00:48] wakes up
|
||||
[1518-05-01 00:13] falls asleep
|
||||
[1518-06-27 00:49] wakes up
|
||||
[1518-09-29 00:18] falls asleep
|
||||
[1518-10-02 23:56] Guard #691 begins shift
|
||||
[1518-03-28 00:42] wakes up
|
||||
[1518-05-30 00:23] falls asleep
|
||||
[1518-10-21 00:24] falls asleep
|
||||
[1518-11-03 00:28] wakes up
|
||||
[1518-10-18 00:20] falls asleep
|
||||
[1518-10-11 00:45] falls asleep
|
||||
[1518-10-02 00:23] falls asleep
|
||||
[1518-11-02 00:42] wakes up
|
||||
[1518-11-03 00:01] Guard #457 begins shift
|
||||
[1518-08-05 00:47] falls asleep
|
||||
[1518-09-05 00:23] wakes up
|
||||
[1518-08-28 00:00] Guard #1069 begins shift
|
||||
[1518-09-17 00:44] wakes up
|
||||
[1518-06-16 23:59] Guard #691 begins shift
|
||||
[1518-08-05 00:02] Guard #1069 begins shift
|
||||
[1518-04-12 00:01] Guard #691 begins shift
|
||||
[1518-11-06 00:43] wakes up
|
||||
[1518-06-09 00:28] falls asleep
|
||||
[1518-05-14 00:26] falls asleep
|
||||
[1518-09-11 00:04] Guard #2693 begins shift
|
||||
[1518-09-06 00:33] falls asleep
|
||||
[1518-09-29 00:44] wakes up
|
||||
[1518-06-04 23:49] Guard #1933 begins shift
|
||||
[1518-03-25 00:02] Guard #1153 begins shift
|
||||
[1518-10-25 00:59] wakes up
|
||||
[1518-08-29 00:37] falls asleep
|
||||
[1518-09-30 00:40] wakes up
|
||||
[1518-05-17 23:50] Guard #223 begins shift
|
||||
[1518-05-19 23:46] Guard #1933 begins shift
|
||||
[1518-07-18 00:40] falls asleep
|
||||
[1518-09-23 00:33] falls asleep
|
||||
[1518-09-08 00:17] falls asleep
|
||||
[1518-11-19 00:12] falls asleep
|
||||
[1518-03-31 00:05] falls asleep
|
||||
[1518-08-24 00:31] wakes up
|
||||
[1518-05-11 00:10] falls asleep
|
||||
[1518-07-29 00:14] wakes up
|
||||
[1518-07-10 00:43] wakes up
|
||||
[1518-08-18 00:15] falls asleep
|
||||
[1518-04-10 00:50] wakes up
|
||||
[1518-05-26 00:23] wakes up
|
||||
[1518-09-03 00:04] Guard #223 begins shift
|
||||
[1518-04-11 00:06] falls asleep
|
||||
[1518-07-29 00:12] falls asleep
|
||||
[1518-10-04 00:28] wakes up
|
||||
[1518-08-21 00:49] falls asleep
|
||||
[1518-10-15 00:43] wakes up
|
||||
[1518-03-26 00:47] wakes up
|
||||
[1518-04-08 00:58] wakes up
|
||||
[1518-07-27 00:52] wakes up
|
||||
[1518-05-30 23:56] Guard #179 begins shift
|
||||
[1518-09-22 00:02] Guard #2693 begins shift
|
||||
[1518-10-14 00:46] falls asleep
|
||||
[1518-11-05 00:21] falls asleep
|
||||
[1518-05-16 23:59] Guard #1069 begins shift
|
||||
[1518-05-17 00:27] falls asleep
|
||||
[1518-09-28 00:52] falls asleep
|
||||
[1518-07-22 00:20] falls asleep
|
||||
[1518-06-13 00:02] falls asleep
|
||||
[1518-05-28 00:27] falls asleep
|
||||
[1518-05-07 00:43] wakes up
|
||||
[1518-05-20 00:44] falls asleep
|
||||
[1518-05-20 23:57] Guard #691 begins shift
|
||||
[1518-05-02 00:51] wakes up
|
||||
[1518-10-01 00:53] falls asleep
|
||||
[1518-11-04 00:26] falls asleep
|
||||
[1518-04-01 00:55] wakes up
|
||||
[1518-04-07 00:25] falls asleep
|
||||
[1518-03-26 00:03] Guard #1933 begins shift
|
||||
[1518-07-16 00:28] falls asleep
|
||||
[1518-07-05 00:03] Guard #163 begins shift
|
||||
[1518-04-24 00:49] wakes up
|
||||
[1518-03-30 00:23] falls asleep
|
||||
[1518-04-27 00:04] Guard #647 begins shift
|
||||
[1518-07-31 00:36] falls asleep
|
||||
[1518-10-06 00:42] wakes up
|
||||
[1518-06-10 00:51] wakes up
|
||||
[1518-08-10 00:22] falls asleep
|
||||
[1518-04-22 00:00] Guard #647 begins shift
|
||||
[1518-04-16 00:43] wakes up
|
||||
[1518-05-27 00:13] falls asleep
|
||||
[1518-07-18 23:58] Guard #2039 begins shift
|
||||
[1518-05-11 00:37] falls asleep
|
||||
[1518-09-28 00:34] wakes up
|
||||
[1518-08-26 00:49] wakes up
|
||||
[1518-04-26 00:24] falls asleep
|
||||
[1518-07-04 00:50] wakes up
|
||||
[1518-05-15 00:57] wakes up
|
||||
[1518-11-01 00:39] wakes up
|
||||
[1518-09-28 00:55] wakes up
|
||||
[1518-06-25 00:17] wakes up
|
||||
[1518-06-25 00:00] Guard #163 begins shift
|
||||
[1518-07-20 00:59] wakes up
|
||||
[1518-10-06 00:36] falls asleep
|
||||
[1518-10-02 00:02] Guard #659 begins shift
|
||||
[1518-09-23 23:50] Guard #503 begins shift
|
||||
[1518-03-20 00:00] Guard #457 begins shift
|
||||
[1518-04-24 00:19] falls asleep
|
||||
[1518-05-08 00:51] wakes up
|
||||
[1518-07-16 23:58] Guard #2753 begins shift
|
||||
[1518-11-01 00:49] wakes up
|
||||
[1518-11-08 00:00] Guard #1699 begins shift
|
||||
[1518-06-12 00:15] falls asleep
|
||||
[1518-10-18 23:59] Guard #647 begins shift
|
||||
[1518-08-02 00:53] wakes up
|
||||
[1518-05-23 00:29] wakes up
|
||||
[1518-03-25 00:09] falls asleep
|
||||
[1518-10-21 00:25] wakes up
|
||||
[1518-03-22 00:00] Guard #503 begins shift
|
||||
[1518-05-19 00:05] falls asleep
|
||||
[1518-06-09 00:50] wakes up
|
||||
[1518-09-26 00:32] wakes up
|
||||
[1518-03-24 00:34] falls asleep
|
||||
[1518-08-25 00:01] Guard #1069 begins shift
|
||||
[1518-04-26 00:44] wakes up
|
||||
[1518-05-22 00:00] Guard #419 begins shift
|
||||
[1518-11-20 00:57] wakes up
|
||||
[1518-05-02 00:50] falls asleep
|
||||
[1518-11-17 00:41] wakes up
|
||||
[1518-06-07 00:21] falls asleep
|
||||
[1518-06-19 00:24] falls asleep
|
||||
[1518-08-08 23:57] Guard #1069 begins shift
|
||||
[1518-11-16 00:36] falls asleep
|
||||
[1518-09-03 00:45] wakes up
|
||||
[1518-07-15 00:44] wakes up
|
||||
[1518-07-11 00:25] wakes up
|
||||
[1518-09-18 23:51] Guard #2953 begins shift
|
||||
[1518-10-03 23:49] Guard #1933 begins shift
|
||||
[1518-10-30 00:31] falls asleep
|
||||
[1518-09-18 00:33] falls asleep
|
||||
[1518-08-10 00:39] wakes up
|
||||
[1518-07-30 00:56] wakes up
|
||||
[1518-09-25 23:51] Guard #659 begins shift
|
||||
[1518-11-19 00:59] wakes up
|
||||
[1518-05-21 00:55] wakes up
|
||||
[1518-10-15 00:53] wakes up
|
||||
[1518-09-22 00:20] falls asleep
|
||||
[1518-04-21 00:44] falls asleep
|
||||
[1518-11-12 00:45] wakes up
|
||||
[1518-05-23 00:28] falls asleep
|
||||
[1518-05-05 23:59] Guard #2753 begins shift
|
||||
[1518-10-15 00:39] falls asleep
|
||||
[1518-09-09 00:51] wakes up
|
||||
[1518-06-11 23:57] Guard #1069 begins shift
|
||||
[1518-06-01 00:47] wakes up
|
||||
[1518-09-28 00:43] falls asleep
|
||||
[1518-04-27 00:33] falls asleep
|
||||
[1518-08-08 00:31] wakes up
|
||||
[1518-09-09 23:59] Guard #691 begins shift
|
||||
[1518-10-17 00:43] wakes up
|
||||
[1518-10-23 00:43] falls asleep
|
||||
[1518-07-03 00:50] wakes up
|
||||
[1518-07-06 00:33] wakes up
|
||||
[1518-06-25 00:41] wakes up
|
||||
[1518-06-13 00:44] wakes up
|
||||
[1518-10-28 00:35] wakes up
|
||||
[1518-08-16 00:01] falls asleep
|
||||
[1518-03-22 00:17] falls asleep
|
||||
[1518-07-06 00:47] wakes up
|
||||
[1518-09-13 00:01] Guard #659 begins shift
|
||||
[1518-06-14 00:01] Guard #2953 begins shift
|
||||
[1518-07-19 00:57] wakes up
|
||||
[1518-09-15 23:58] Guard #223 begins shift
|
||||
[1518-10-19 00:06] falls asleep
|
||||
[1518-09-21 00:49] wakes up
|
||||
[1518-08-26 00:03] falls asleep
|
||||
[1518-07-08 00:13] falls asleep
|
||||
[1518-06-08 23:56] Guard #1069 begins shift
|
||||
[1518-07-27 00:37] falls asleep
|
||||
[1518-07-06 00:17] falls asleep
|
||||
[1518-04-23 00:25] wakes up
|
||||
[1518-06-30 00:33] wakes up
|
||||
[1518-04-08 00:46] falls asleep
|
||||
[1518-04-02 00:57] wakes up
|
||||
[1518-11-22 00:51] falls asleep
|
||||
[1518-06-10 23:58] Guard #1933 begins shift
|
||||
[1518-09-15 00:49] falls asleep
|
||||
[1518-10-10 00:42] falls asleep
|
||||
[1518-04-14 00:49] falls asleep
|
||||
[1518-09-03 23:59] Guard #2039 begins shift
|
||||
[1518-06-17 00:34] falls asleep
|
||||
[1518-07-20 00:00] Guard #2953 begins shift
|
||||
[1518-07-31 00:41] wakes up
|
||||
[1518-10-25 00:45] falls asleep
|
||||
[1518-03-24 00:30] wakes up
|
||||
[1518-04-10 00:15] falls asleep
|
||||
[1518-06-30 00:36] falls asleep
|
||||
[1518-07-03 00:01] Guard #2953 begins shift
|
||||
[1518-05-21 00:08] falls asleep
|
||||
[1518-09-04 00:29] wakes up
|
||||
[1518-10-03 00:10] falls asleep
|
||||
[1518-06-04 00:56] wakes up
|
||||
[1518-09-04 00:23] falls asleep
|
||||
[1518-05-09 23:59] Guard #179 begins shift
|
||||
[1518-10-20 00:42] wakes up
|
||||
[1518-07-22 00:04] Guard #1699 begins shift
|
||||
[1518-06-23 00:49] wakes up
|
||||
[1518-04-29 00:58] wakes up
|
||||
[1518-05-02 00:03] Guard #647 begins shift
|
||||
[1518-08-03 00:07] falls asleep
|
||||
[1518-09-24 00:22] falls asleep
|
||||
[1518-04-13 00:05] falls asleep
|
||||
[1518-09-03 00:41] falls asleep
|
||||
[1518-09-26 00:00] falls asleep
|
||||
[1518-05-10 00:45] wakes up
|
||||
[1518-04-18 00:39] wakes up
|
||||
[1518-11-15 00:41] falls asleep
|
||||
[1518-05-25 00:04] Guard #409 begins shift
|
||||
[1518-07-07 00:35] falls asleep
|
||||
[1518-04-28 00:53] wakes up
|
||||
[1518-11-21 00:54] wakes up
|
||||
[1518-10-10 00:24] falls asleep
|
||||
[1518-07-17 00:40] falls asleep
|
||||
[1518-10-26 00:18] falls asleep
|
||||
[1518-07-14 00:58] wakes up
|
||||
[1518-06-27 00:11] falls asleep
|
||||
[1518-09-17 00:51] falls asleep
|
||||
[1518-07-25 00:51] wakes up
|
||||
[1518-07-02 00:06] falls asleep
|
||||
[1518-03-29 00:01] falls asleep
|
||||
[1518-11-09 00:57] wakes up
|
||||
[1518-08-06 00:32] wakes up
|
||||
[1518-10-02 00:25] wakes up
|
||||
[1518-08-17 00:39] wakes up
|
||||
[1518-06-21 00:21] falls asleep
|
||||
[1518-11-17 23:53] Guard #3547 begins shift
|
||||
[1518-04-17 00:38] wakes up
|
||||
[1518-04-12 00:50] wakes up
|
||||
[1518-11-23 00:49] wakes up
|
||||
[1518-10-05 00:07] falls asleep
|
||||
[1518-03-20 00:14] falls asleep
|
||||
[1518-05-28 00:00] Guard #1933 begins shift
|
||||
[1518-05-29 00:04] falls asleep
|
||||
[1518-10-28 00:43] falls asleep
|
||||
[1518-03-26 00:21] falls asleep
|
||||
[1518-11-21 00:50] falls asleep
|
||||
[1518-10-04 00:05] falls asleep
|
||||
[1518-05-07 00:19] falls asleep
|
||||
[1518-10-10 00:50] falls asleep
|
||||
[1518-03-31 00:45] wakes up
|
||||
[1518-10-06 00:30] falls asleep
|
||||
[1518-11-04 00:00] Guard #179 begins shift
|
||||
[1518-05-28 00:56] falls asleep
|
||||
[1518-05-18 00:31] falls asleep
|
||||
[1518-09-08 00:34] falls asleep
|
||||
[1518-09-13 00:17] falls asleep
|
||||
[1518-03-19 00:37] falls asleep
|
||||
[1518-06-30 00:58] wakes up
|
||||
[1518-03-23 00:23] falls asleep
|
||||
[1518-07-30 00:26] falls asleep
|
||||
[1518-04-09 00:47] wakes up
|
||||
[1518-07-26 00:11] falls asleep
|
||||
[1518-07-02 00:04] Guard #1699 begins shift
|
||||
[1518-09-14 00:51] wakes up
|
||||
[1518-04-29 00:46] falls asleep
|
||||
[1518-04-19 00:58] wakes up
|
||||
[1518-04-18 00:57] wakes up
|
||||
[1518-07-14 00:10] falls asleep
|
||||
[1518-05-28 00:33] wakes up
|
||||
[1518-05-10 00:27] falls asleep
|
||||
[1518-09-28 00:18] falls asleep
|
||||
[1518-08-13 00:01] Guard #647 begins shift
|
||||
[1518-09-06 00:51] wakes up
|
||||
[1518-11-17 00:02] Guard #2953 begins shift
|
||||
[1518-04-09 00:31] falls asleep
|
||||
[1518-07-08 00:02] Guard #659 begins shift
|
||||
[1518-09-22 00:58] wakes up
|
||||
[1518-07-28 00:34] wakes up
|
||||
[1518-11-17 00:22] falls asleep
|
||||
[1518-04-03 00:00] Guard #659 begins shift
|
||||
[1518-08-14 00:51] wakes up
|
||||
[1518-05-12 00:04] Guard #2039 begins shift
|
||||
[1518-09-16 00:39] wakes up
|
||||
[1518-06-02 00:19] falls asleep
|
||||
[1518-08-19 23:58] Guard #3547 begins shift
|
||||
[1518-04-21 00:03] Guard #179 begins shift
|
||||
[1518-04-17 00:13] falls asleep
|
||||
[1518-06-26 23:56] Guard #1933 begins shift
|
||||
[1518-03-27 23:58] Guard #2693 begins shift
|
||||
[1518-04-01 00:11] falls asleep
|
||||
[1518-08-30 00:04] Guard #2753 begins shift
|
||||
[1518-11-02 00:16] wakes up
|
||||
[1518-10-08 00:01] Guard #2039 begins shift
|
||||
[1518-04-02 00:00] Guard #457 begins shift
|
||||
[1518-10-04 00:55] wakes up
|
||||
[1518-05-28 00:58] wakes up
|
||||
[1518-09-13 00:55] wakes up
|
||||
[1518-08-23 00:38] wakes up
|
||||
[1518-04-18 00:25] wakes up
|
||||
[1518-08-15 23:51] Guard #401 begins shift
|
||||
[1518-07-28 00:48] wakes up
|
||||
[1518-08-27 00:02] Guard #691 begins shift
|
||||
[1518-03-28 00:59] wakes up
|
||||
[1518-08-29 00:04] Guard #1153 begins shift
|
||||
[1518-07-31 23:58] Guard #3347 begins shift
|
||||
[1518-11-01 23:56] Guard #409 begins shift
|
||||
[1518-08-12 00:32] falls asleep
|
||||
[1518-06-05 00:05] falls asleep
|
||||
[1518-09-16 00:21] falls asleep
|
||||
[1518-04-04 00:03] Guard #1637 begins shift
|
||||
[1518-04-12 00:26] wakes up
|
||||
[1518-06-15 00:23] wakes up
|
||||
[1518-05-07 00:01] Guard #1699 begins shift
|
||||
[1518-05-06 00:43] falls asleep
|
||||
[1518-09-27 00:46] wakes up
|
||||
[1518-07-22 00:58] wakes up
|
||||
[1518-09-03 00:36] falls asleep
|
||||
[1518-04-16 23:58] Guard #419 begins shift
|
||||
[1518-11-11 00:20] falls asleep
|
||||
[1518-04-20 00:11] falls asleep
|
||||
[1518-06-29 00:27] falls asleep
|
||||
[1518-10-09 00:59] wakes up
|
||||
[1518-07-15 00:31] falls asleep
|
||||
[1518-11-10 00:00] Guard #419 begins shift
|
||||
[1518-09-11 00:40] falls asleep
|
||||
[1518-03-24 00:59] wakes up
|
||||
[1518-06-01 00:36] falls asleep
|
||||
[1518-05-31 00:33] falls asleep
|
||||
[1518-05-16 00:47] falls asleep
|
||||
[1518-10-12 00:40] falls asleep
|
||||
[1518-10-23 00:29] falls asleep
|
||||
[1518-11-22 00:37] wakes up
|
||||
[1518-07-09 00:54] wakes up
|
||||
[1518-07-05 00:42] falls asleep
|
||||
[1518-07-29 00:00] Guard #2953 begins shift
|
||||
[1518-09-30 00:46] falls asleep
|
||||
[1518-08-10 00:03] Guard #2039 begins shift
|
||||
[1518-03-27 00:08] falls asleep
|
||||
[1518-03-24 00:24] falls asleep
|
||||
[1518-05-09 00:25] falls asleep
|
||||
[1518-06-14 00:57] wakes up
|
||||
[1518-10-29 23:56] Guard #1699 begins shift
|
||||
[1518-05-02 23:56] Guard #401 begins shift
|
||||
[1518-11-20 00:27] falls asleep
|
||||
[1518-07-20 23:51] Guard #419 begins shift
|
||||
[1518-04-06 00:59] wakes up
|
||||
[1518-10-01 00:04] Guard #2753 begins shift
|
||||
[1518-10-01 00:46] wakes up
|
||||
[1518-07-14 00:02] Guard #1069 begins shift
|
||||
[1518-04-16 00:25] falls asleep
|
||||
[1518-10-10 23:56] Guard #691 begins shift
|
||||
[1518-08-20 00:58] wakes up
|
||||
[1518-09-21 00:11] falls asleep
|
||||
[1518-04-03 00:26] falls asleep
|
||||
[1518-06-20 00:54] wakes up
|
||||
[1518-11-01 00:04] Guard #1069 begins shift
|
||||
[1518-05-28 23:54] Guard #2039 begins shift
|
||||
[1518-03-22 00:36] wakes up
|
||||
[1518-10-26 00:40] wakes up
|
||||
[1518-10-11 00:51] wakes up
|
||||
[1518-04-27 00:58] wakes up
|
||||
[1518-04-10 00:18] wakes up
|
||||
[1518-04-22 00:54] wakes up
|
||||
[1518-09-12 00:48] wakes up
|
||||
[1518-04-28 00:23] falls asleep
|
||||
[1518-11-21 00:38] wakes up
|
||||
[1518-05-20 00:40] wakes up
|
||||
[1518-10-14 00:51] wakes up
|
||||
[1518-06-27 00:46] falls asleep
|
||||
[1518-09-18 00:44] falls asleep
|
||||
[1518-10-09 23:56] Guard #419 begins shift
|
||||
[1518-04-27 00:18] falls asleep
|
||||
[1518-10-20 00:59] wakes up
|
||||
[1518-05-17 00:47] falls asleep
|
||||
[1518-04-18 00:08] falls asleep
|
||||
[1518-07-29 00:58] wakes up
|
||||
[1518-06-10 00:03] Guard #1699 begins shift
|
||||
[1518-09-06 00:15] falls asleep
|
||||
[1518-10-23 00:49] wakes up
|
||||
[1518-11-12 00:33] falls asleep
|
||||
[1518-10-12 23:51] Guard #163 begins shift
|
||||
[1518-06-04 00:33] falls asleep
|
||||
[1518-08-24 00:43] falls asleep
|
||||
[1518-07-17 23:56] Guard #1699 begins shift
|
||||
[1518-10-02 00:44] wakes up
|
||||
[1518-09-12 00:01] Guard #401 begins shift
|
||||
[1518-08-12 00:28] wakes up
|
||||
[1518-07-18 00:27] wakes up
|
||||
[1518-03-27 00:01] Guard #647 begins shift
|
||||
[1518-05-27 00:57] wakes up
|
||||
[1518-03-20 00:26] wakes up
|
||||
[1518-04-23 00:01] Guard #691 begins shift
|
||||
[1518-09-24 23:59] Guard #1153 begins shift
|
||||
[1518-06-02 00:34] wakes up
|
||||
[1518-09-09 00:02] Guard #503 begins shift
|
||||
[1518-04-11 00:03] Guard #457 begins shift
|
||||
[1518-05-30 00:38] wakes up
|
||||
[1518-04-05 00:43] falls asleep
|
||||
[1518-06-17 00:59] wakes up
|
||||
[1518-05-01 00:04] Guard #659 begins shift
|
||||
[1518-06-11 00:46] wakes up
|
||||
[1518-09-12 00:08] falls asleep
|
||||
[1518-08-18 00:41] falls asleep
|
||||
[1518-07-19 00:36] wakes up
|
||||
[1518-09-02 00:39] wakes up
|
||||
[1518-05-27 00:50] falls asleep
|
||||
[1518-10-13 00:54] wakes up
|
||||
[1518-07-09 00:17] falls asleep
|
||||
[1518-07-05 00:26] falls asleep
|
||||
[1518-08-10 23:50] Guard #659 begins shift
|
||||
[1518-04-27 00:14] wakes up
|
||||
[1518-04-29 00:42] wakes up
|
||||
[1518-11-09 00:50] falls asleep
|
||||
[1518-05-24 00:39] falls asleep
|
||||
[1518-09-15 00:45] wakes up
|
||||
[1518-07-06 00:58] wakes up
|
||||
[1518-09-09 00:56] falls asleep
|
||||
[1518-09-20 23:59] Guard #2039 begins shift
|
||||
[1518-06-24 00:47] falls asleep
|
||||
[1518-07-03 00:56] falls asleep
|
||||
[1518-06-01 23:59] Guard #223 begins shift
|
||||
[1518-04-13 00:35] wakes up
|
||||
[1518-05-07 23:57] Guard #457 begins shift
|
||||
[1518-11-08 00:43] wakes up
|
||||
[1518-07-27 00:03] Guard #1153 begins shift
|
||||
[1518-08-07 00:53] wakes up
|
||||
[1518-09-20 00:33] wakes up
|
||||
[1518-11-14 00:44] wakes up
|
||||
[1518-05-31 00:44] wakes up
|
||||
[1518-06-22 00:44] wakes up
|
||||
[1518-05-15 00:15] falls asleep
|
||||
[1518-09-30 00:00] Guard #2693 begins shift
|
||||
[1518-11-22 00:53] wakes up
|
||||
[1518-10-20 23:58] Guard #163 begins shift
|
||||
[1518-06-15 23:56] Guard #1699 begins shift
|
||||
[1518-07-08 00:34] wakes up
|
||||
[1518-11-02 00:30] falls asleep
|
||||
[1518-06-03 00:57] wakes up
|
||||
[1518-06-30 00:15] falls asleep
|
||||
[1518-04-12 00:54] falls asleep
|
||||
[1518-06-19 00:00] Guard #1933 begins shift
|
||||
[1518-11-11 23:57] Guard #179 begins shift
|
||||
[1518-04-08 00:02] Guard #503 begins shift
|
||||
[1518-04-09 23:57] Guard #163 begins shift
|
||||
[1518-07-21 00:50] falls asleep
|
||||
[1518-11-12 00:10] falls asleep
|
||||
[1518-10-10 00:54] wakes up
|
||||
[1518-10-27 23:59] Guard #1069 begins shift
|
||||
[1518-08-03 00:59] wakes up
|
||||
[1518-07-23 23:58] Guard #223 begins shift
|
||||
[1518-08-21 00:59] wakes up
|
||||
[1518-05-09 00:43] wakes up
|
||||
[1518-06-26 00:16] falls asleep
|
||||
[1518-08-21 00:50] wakes up
|
||||
[1518-10-16 00:35] falls asleep
|
||||
[1518-09-28 00:49] wakes up
|
||||
[1518-05-30 00:00] Guard #419 begins shift
|
||||
[1518-11-12 00:13] wakes up
|
||||
[1518-06-07 00:53] falls asleep
|
||||
[1518-07-18 00:58] wakes up
|
||||
[1518-07-10 00:54] falls asleep
|
||||
[1518-09-07 00:55] wakes up
|
||||
[1518-04-19 00:57] falls asleep
|
||||
[1518-05-05 00:52] wakes up
|
||||
[1518-06-18 00:55] wakes up
|
||||
[1518-10-18 00:00] Guard #1933 begins shift
|
||||
[1518-09-11 00:23] wakes up
|
||||
[1518-06-22 23:58] Guard #2953 begins shift
|
||||
[1518-06-29 00:42] wakes up
|
||||
[1518-04-10 00:25] falls asleep
|
||||
[1518-11-13 00:00] Guard #2753 begins shift
|
||||
[1518-03-28 23:50] Guard #419 begins shift
|
||||
[1518-08-25 00:39] wakes up
|
||||
[1518-08-21 00:57] falls asleep
|
||||
[1518-08-29 00:49] wakes up
|
||||
[1518-10-12 00:48] wakes up
|
||||
[1518-05-11 00:23] wakes up
|
||||
[1518-06-23 23:56] Guard #1153 begins shift
|
||||
[1518-05-19 00:50] wakes up
|
||||
[1518-11-13 00:55] wakes up
|
||||
[1518-07-05 00:28] wakes up
|
||||
[1518-10-18 00:53] wakes up
|
||||
[1518-07-19 00:54] falls asleep
|
||||
[1518-06-07 00:42] falls asleep
|
||||
[1518-10-22 00:47] wakes up
|
||||
[1518-05-03 00:54] falls asleep
|
||||
[1518-09-05 00:17] falls asleep
|
||||
[1518-10-21 00:42] wakes up
|
||||
[1518-11-01 00:13] falls asleep
|
||||
[1518-05-10 23:58] Guard #223 begins shift
|
||||
[1518-07-01 00:48] wakes up
|
||||
[1518-03-23 00:55] wakes up
|
||||
[1518-08-16 23:54] Guard #2039 begins shift
|
||||
[1518-04-29 00:16] falls asleep
|
||||
[1518-07-01 00:20] falls asleep
|
||||
[1518-05-03 00:57] wakes up
|
||||
[1518-06-28 00:03] Guard #179 begins shift
|
||||
[1518-04-25 00:21] falls asleep
|
||||
[1518-05-13 00:38] wakes up
|
||||
[1518-05-18 23:52] Guard #1699 begins shift
|
||||
[1518-04-14 23:59] Guard #2039 begins shift
|
||||
[1518-06-28 00:51] falls asleep
|
||||
[1518-07-20 00:20] falls asleep
|
||||
[1518-06-02 00:42] falls asleep
|
||||
[1518-09-08 00:04] Guard #1699 begins shift
|
||||
[1518-05-18 00:01] falls asleep
|
||||
[1518-11-10 00:48] wakes up
|
||||
[1518-10-08 23:56] Guard #409 begins shift
|
||||
[1518-10-19 00:53] wakes up
|
||||
[1518-04-12 00:55] wakes up
|
||||
[1518-06-23 00:14] falls asleep
|
||||
[1518-09-02 00:17] falls asleep
|
||||
[1518-09-20 00:20] falls asleep
|
||||
[1518-11-18 00:03] falls asleep
|
||||
[1518-09-23 00:12] falls asleep
|
||||
[1518-06-20 00:08] falls asleep
|
||||
[1518-09-29 00:05] falls asleep
|
||||
[1518-08-20 00:16] falls asleep
|
||||
[1518-10-05 00:16] wakes up
|
||||
[1518-09-04 00:55] wakes up
|
||||
[1518-10-05 00:00] Guard #3547 begins shift
|
||||
[1518-10-29 00:11] falls asleep
|
||||
[1518-09-03 00:37] wakes up
|
||||
[1518-06-07 00:01] Guard #457 begins shift
|
||||
[1518-10-16 00:54] wakes up
|
||||
[1518-05-20 00:34] falls asleep
|
||||
[1518-06-01 00:01] Guard #1069 begins shift
|
||||
[1518-08-11 00:04] falls asleep
|
||||
[1518-03-27 00:12] wakes up
|
||||
[1518-11-07 00:55] wakes up
|
||||
[1518-08-22 00:00] falls asleep
|
||||
[1518-08-30 00:51] wakes up
|
||||
[1518-07-11 00:21] falls asleep
|
||||
[1518-07-21 00:53] wakes up
|
||||
[1518-10-02 00:30] falls asleep
|
||||
[1518-10-06 00:31] wakes up
|
||||
[1518-07-26 00:45] wakes up
|
||||
[1518-11-21 00:00] Guard #2693 begins shift
|
||||
[1518-03-21 00:03] Guard #691 begins shift
|
||||
[1518-06-21 00:00] Guard #503 begins shift
|
||||
[1518-07-10 00:08] falls asleep
|
||||
[1518-07-23 00:09] falls asleep
|
||||
[1518-09-05 00:29] falls asleep
|
||||
[1518-09-10 00:23] falls asleep
|
||||
[1518-06-20 00:04] Guard #1933 begins shift
|
||||
[1518-06-30 23:59] Guard #691 begins shift
|
||||
[1518-10-09 00:35] falls asleep
|
||||
[1518-10-19 23:58] Guard #179 begins shift
|
||||
[1518-09-06 00:18] wakes up
|
||||
[1518-04-10 00:47] falls asleep
|
||||
[1518-08-28 00:18] falls asleep
|
||||
[1518-05-18 00:06] wakes up
|
||||
[1518-11-06 00:31] wakes up
|
||||
[1518-08-08 00:26] falls asleep
|
||||
[1518-11-08 00:30] falls asleep
|
||||
[1518-09-20 00:56] falls asleep
|
||||
[1518-08-15 00:42] wakes up
|
||||
[1518-09-18 00:50] wakes up
|
||||
[1518-06-03 00:22] falls asleep
|
||||
[1518-05-25 00:56] wakes up
|
||||
[1518-06-11 00:33] falls asleep
|
||||
[1518-05-16 00:59] wakes up
|
||||
[1518-09-18 00:03] Guard #659 begins shift
|
||||
[1518-10-30 00:48] wakes up
|
||||
[1518-08-26 00:25] falls asleep
|
||||
[1518-11-15 00:26] falls asleep
|
||||
[1518-06-19 00:26] wakes up
|
||||
[1518-10-29 00:42] wakes up
|
||||
[1518-09-01 00:47] wakes up
|
||||
[1518-08-25 23:48] Guard #1069 begins shift
|
||||
[1518-06-22 00:32] falls asleep
|
||||
[1518-08-21 23:51] Guard #1069 begins shift
|
||||
[1518-10-12 00:22] wakes up
|
||||
[1518-10-27 00:26] wakes up
|
||||
[1518-04-28 23:58] Guard #179 begins shift
|
||||
[1518-06-10 00:58] wakes up
|
||||
[1518-11-06 00:18] falls asleep
|
||||
[1518-07-20 00:57] falls asleep
|
||||
[1518-04-01 00:35] falls asleep
|
||||
[1518-08-14 00:10] falls asleep
|
||||
[1518-06-06 00:52] wakes up
|
||||
[1518-08-27 00:33] wakes up
|
||||
[1518-07-04 00:00] Guard #691 begins shift
|
||||
[1518-07-25 00:33] falls asleep
|
||||
[1518-11-10 00:21] falls asleep
|
||||
[1518-08-16 00:17] wakes up
|
||||
[1518-11-05 00:51] wakes up
|
||||
[1518-10-01 00:41] falls asleep
|
||||
[1518-04-08 00:20] wakes up
|
||||
[1518-08-12 00:00] Guard #223 begins shift
|
||||
[1518-09-01 00:03] Guard #223 begins shift
|
||||
[1518-10-28 00:54] wakes up
|
||||
[1518-09-12 00:45] falls asleep
|
||||
[1518-11-01 00:44] falls asleep
|
||||
[1518-03-19 00:02] Guard #2953 begins shift
|
||||
[1518-04-06 00:41] falls asleep
|
||||
[1518-07-15 00:49] falls asleep
|
||||
[1518-10-25 00:16] falls asleep
|
||||
[1518-05-28 00:46] falls asleep
|
||||
[1518-03-27 00:22] falls asleep
|
||||
[1518-10-17 00:50] falls asleep
|
||||
[1518-04-13 23:57] Guard #1153 begins shift
|
||||
[1518-09-04 00:37] falls asleep
|
||||
[1518-05-01 00:57] wakes up
|
||||
[1518-11-13 23:57] Guard #691 begins shift
|
||||
[1518-03-21 00:31] falls asleep
|
||||
[1518-10-10 00:45] wakes up
|
||||
[1518-04-28 00:09] falls asleep
|
||||
[1518-06-07 00:57] wakes up
|
||||
[1518-07-28 00:47] falls asleep
|
||||
[1518-09-06 23:58] Guard #409 begins shift
|
||||
[1518-06-13 00:53] wakes up
|
||||
[1518-10-03 00:33] falls asleep
|
||||
[1518-06-16 00:34] wakes up
|
||||
[1518-03-28 00:18] falls asleep
|
||||
[1518-10-07 00:26] falls asleep
|
||||
[1518-10-23 00:00] Guard #1069 begins shift
|
||||
[1518-06-18 00:20] falls asleep
|
||||
[1518-11-09 00:04] Guard #457 begins shift
|
||||
[1518-11-03 00:59] wakes up
|
||||
[1518-11-09 00:25] falls asleep
|
||||
[1518-04-15 00:08] falls asleep
|
||||
[1518-05-03 00:35] wakes up
|
||||
[1518-04-28 00:12] wakes up
|
||||
[1518-04-06 00:03] Guard #179 begins shift
|
||||
[1518-07-20 00:44] wakes up
|
||||
[1518-09-05 00:48] wakes up
|
||||
[1518-06-17 00:35] wakes up
|
||||
[1518-07-24 23:57] Guard #223 begins shift
|
||||
[1518-10-29 00:00] Guard #419 begins shift
|
||||
[1518-03-19 00:41] wakes up
|
||||
[1518-07-30 00:00] Guard #2953 begins shift
|
||||
[1518-06-14 00:50] falls asleep
|
||||
[1518-07-12 00:32] wakes up
|
||||
[1518-06-25 23:57] Guard #1069 begins shift
|
||||
[1518-06-10 00:44] falls asleep
|
||||
[1518-05-17 00:32] wakes up
|
||||
[1518-10-08 00:48] wakes up
|
||||
[1518-11-03 00:22] falls asleep
|
||||
[1518-10-24 00:02] falls asleep
|
||||
[1518-10-27 00:29] falls asleep
|
||||
[1518-04-01 00:23] wakes up
|
||||
[1518-08-05 00:33] wakes up
|
||||
[1518-08-09 00:41] wakes up
|
||||
[1518-11-06 00:42] falls asleep
|
||||
[1518-08-24 00:49] wakes up
|
||||
[1518-09-14 23:56] Guard #1699 begins shift
|
||||
[1518-07-19 00:11] falls asleep
|
||||
[1518-04-15 00:37] falls asleep
|
||||
[1518-09-01 00:34] falls asleep
|
||||
[1518-07-29 00:22] falls asleep
|
||||
[1518-11-02 00:51] falls asleep
|
||||
[1518-05-02 00:22] wakes up
|
||||
[1518-05-26 00:10] falls asleep
|
||||
[1518-10-24 23:59] Guard #1153 begins shift
|
||||
[1518-07-12 00:01] Guard #691 begins shift
|
||||
[1518-08-04 00:04] Guard #691 begins shift
|
||||
[1518-05-02 00:58] wakes up
|
||||
[1518-11-11 00:52] wakes up
|
||||
[1518-10-31 00:00] Guard #683 begins shift
|
||||
[1518-06-13 00:50] falls asleep
|
||||
[1518-07-05 00:53] wakes up
|
||||
[1518-07-05 00:22] wakes up
|
||||
[1518-10-23 00:48] falls asleep
|
||||
[1518-04-22 00:52] falls asleep
|
||||
[1518-09-28 00:04] Guard #647 begins shift
|
||||
[1518-05-04 00:24] falls asleep
|
||||
[1518-05-20 00:21] wakes up
|
||||
[1518-10-15 00:01] Guard #409 begins shift
|
||||
[1518-09-10 00:33] wakes up
|
||||
[1518-04-28 00:01] Guard #1699 begins shift
|
||||
[1518-04-11 00:50] wakes up
|
||||
[1518-05-05 00:23] falls asleep
|
||||
[1518-10-16 23:59] Guard #409 begins shift
|
||||
[1518-11-15 00:51] wakes up
|
||||
[1518-09-09 00:33] falls asleep
|
||||
[1518-07-12 00:21] falls asleep
|
||||
[1518-04-12 23:51] Guard #1699 begins shift
|
||||
[1518-06-10 00:54] falls asleep
|
||||
[1518-07-13 00:39] wakes up
|
||||
[1518-09-12 00:38] wakes up
|
||||
[1518-06-06 00:02] Guard #1153 begins shift
|
||||
[1518-06-25 00:10] falls asleep
|
||||
[1518-09-24 00:14] wakes up
|
||||
[1518-10-24 00:33] wakes up
|
||||
[1518-07-17 00:43] wakes up
|
||||
[1518-07-23 00:03] Guard #419 begins shift
|
||||
[1518-10-07 00:55] wakes up
|
||||
[1518-05-04 00:04] Guard #2753 begins shift
|
||||
[1518-05-22 00:06] falls asleep
|
||||
[1518-10-13 00:04] falls asleep
|
||||
[1518-11-23 00:02] Guard #457 begins shift
|
||||
[1518-08-04 00:57] wakes up
|
||||
[1518-09-30 00:33] falls asleep
|
||||
[1518-11-02 00:15] falls asleep
|
||||
[1518-03-28 00:56] falls asleep
|
||||
[1518-10-04 00:47] falls asleep
|
||||
[1518-04-30 00:03] Guard #401 begins shift
|
||||
[1518-06-27 00:33] wakes up
|
||||
[1518-07-10 00:56] wakes up
|
||||
[1518-03-25 00:51] wakes up
|
||||
[1518-10-20 00:33] falls asleep
|
||||
[1518-11-20 00:51] wakes up
|
||||
[1518-05-06 00:46] wakes up
|
||||
[1518-07-27 23:47] Guard #3547 begins shift
|
||||
[1518-08-02 00:02] Guard #419 begins shift
|
||||
[1518-08-12 00:55] wakes up
|
||||
[1518-09-22 23:58] Guard #419 begins shift
|
||||
[1518-05-27 00:03] Guard #457 begins shift
|
||||
[1518-04-08 00:19] falls asleep
|
||||
[1518-07-27 00:20] falls asleep
|
||||
[1518-03-31 00:22] wakes up
|
||||
[1518-09-29 00:14] wakes up
|
||||
[1518-06-07 00:50] wakes up
|
||||
[1518-07-05 00:06] falls asleep
|
||||
[1518-09-14 00:06] falls asleep
|
||||
[1518-05-20 00:54] wakes up
|
||||
[1518-08-15 00:51] falls asleep
|
||||
[1518-04-18 00:44] falls asleep
|
||||
[1518-07-27 00:24] wakes up
|
||||
[1518-10-20 00:52] falls asleep
|
||||
[1518-08-28 00:45] wakes up
|
||||
[1518-08-02 00:15] falls asleep
|
||||
[1518-04-21 00:52] wakes up
|
||||
[1518-07-23 00:51] wakes up
|
||||
[1518-09-19 00:02] falls asleep
|
||||
[1518-10-26 23:59] Guard #179 begins shift
|
||||
[1518-04-23 00:15] falls asleep
|
||||
[1518-04-06 23:57] Guard #2693 begins shift
|
||||
[1518-09-23 00:38] wakes up
|
||||
[1518-08-05 00:28] falls asleep
|
||||
[1518-09-08 00:51] wakes up
|
||||
[1518-11-09 00:44] wakes up
|
||||
[1518-07-03 00:59] wakes up
|
||||
[1518-08-06 00:00] Guard #419 begins shift
|
||||
[1518-06-16 00:29] falls asleep
|
||||
[1518-09-28 23:53] Guard #401 begins shift
|
||||
[1518-11-04 23:57] Guard #163 begins shift
|
||||
[1518-07-31 00:19] wakes up
|
||||
[1518-06-06 00:43] falls asleep
|
||||
[1518-11-04 00:42] wakes up
|
||||
[1518-08-02 23:59] Guard #1699 begins shift
|
||||
[1518-05-10 00:56] wakes up
|
||||
[1518-05-28 00:48] wakes up
|
||||
[1518-08-09 00:13] falls asleep
|
||||
[1518-06-22 00:04] Guard #2953 begins shift
|
||||
[1518-05-08 23:59] Guard #2953 begins shift
|
||||
[1518-04-01 00:03] Guard #419 begins shift
|
||||
[1518-10-25 00:38] wakes up
|
||||
[1518-05-02 00:13] falls asleep
|
||||
[1518-05-04 00:51] wakes up
|
||||
[1518-10-17 00:41] falls asleep
|
||||
[1518-09-24 00:03] falls asleep
|
||||
[1518-09-09 00:58] wakes up
|
||||
[1518-04-12 00:12] falls asleep
|
||||
[1518-06-14 23:48] Guard #2693 begins shift
|
||||
[1518-03-27 00:35] wakes up
|
||||
[1518-03-23 00:02] Guard #223 begins shift
|
||||
[1518-06-12 00:50] wakes up
|
||||
[1518-07-18 00:23] falls asleep
|
||||
[1518-08-25 00:30] falls asleep
|
||||
[1518-05-12 00:11] falls asleep
|
||||
[1518-09-19 00:40] wakes up
|
||||
[1518-08-15 00:57] wakes up
|
||||
[1518-09-25 00:46] wakes up
|
||||
[1518-07-07 00:41] wakes up
|
||||
[1518-05-02 00:54] falls asleep
|
||||
[1518-05-24 00:57] wakes up
|
||||
[1518-11-16 00:00] Guard #2039 begins shift
|
||||
[1518-08-24 00:23] falls asleep
|
||||
[1518-07-13 00:36] falls asleep
|
||||
[1518-07-02 00:42] falls asleep
|
||||
[1518-04-08 23:57] Guard #2953 begins shift
|
||||
[1518-06-29 23:56] Guard #3547 begins shift
|
||||
[1518-03-26 00:56] falls asleep
|
||||
[1518-08-15 00:01] Guard #659 begins shift
|
||||
[1518-06-29 00:00] Guard #1153 begins shift
|
||||
[1518-05-29 00:56] wakes up
|
||||
[1518-05-13 00:07] falls asleep
|
||||
[1518-04-24 00:01] Guard #419 begins shift
|
||||
[1518-09-17 00:40] falls asleep
|
||||
[1518-08-23 23:59] Guard #179 begins shift
|
||||
[1518-08-31 00:04] Guard #1637 begins shift
|
||||
[1518-10-22 00:14] falls asleep
|
||||
[1518-04-19 00:04] Guard #3547 begins shift
|
||||
[1518-06-15 00:01] falls asleep
|
||||
[1518-06-08 00:46] wakes up
|
||||
[1518-08-14 00:03] Guard #2693 begins shift
|
||||
[1518-07-06 00:44] falls asleep
|
||||
[1518-11-14 00:27] falls asleep
|
||||
[1518-09-08 00:18] wakes up
|
||||
[1518-07-02 00:45] wakes up
|
||||
[1518-05-22 23:59] Guard #1699 begins shift
|
||||
[1518-07-02 00:37] wakes up
|
||||
[1518-07-31 00:16] falls asleep
|
||||
[1518-08-30 00:12] falls asleep
|
||||
[1518-09-06 00:01] Guard #409 begins shift
|
||||
[1518-11-06 23:57] Guard #223 begins shift
|
||||
[1518-11-23 00:24] falls asleep
|
||||
[1518-04-18 00:36] falls asleep
|
||||
[1518-11-18 00:16] wakes up
|
||||
[1518-05-18 00:51] wakes up
|
||||
[1518-03-29 00:48] wakes up
|
||||
[1518-09-11 00:16] falls asleep
|
||||
@ -0,0 +1,421 @@
|
||||
//
|
||||
// Advent of Code 2018 "Day 4: Repose Record"
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum Action {
|
||||
case startShift
|
||||
case sleep
|
||||
case wake
|
||||
case none
|
||||
}
|
||||
|
||||
struct Activity: Equatable, Comparable {
|
||||
var day = -1
|
||||
var minute = -1
|
||||
var sortKey = -1.0 // Cobination of day + minute/60
|
||||
var action = Action.none
|
||||
var id = -1
|
||||
|
||||
static func == (lhs: Activity, rhs: Activity) -> Bool {
|
||||
return (lhs.day == rhs.day) && (lhs.minute == rhs.minute) && (lhs.sortKey == rhs.sortKey) && (lhs.action == rhs.action) && (lhs.id == rhs.id)
|
||||
}
|
||||
|
||||
static func < (lhs: Activity, rhs: Activity) -> Bool {
|
||||
return lhs.sortKey < rhs.sortKey
|
||||
}
|
||||
}
|
||||
|
||||
struct GuardMap {
|
||||
var id = 0
|
||||
var sleepMap: [Bool] = Array(repeating: false, count: 60)
|
||||
}
|
||||
|
||||
// Make some assumptions based on the fact that there is only on guard on duty per night
|
||||
|
||||
// read in data
|
||||
// parse data to extract sleep times for each guard on each day
|
||||
// create guard sleep map
|
||||
// determine best guard with best minute
|
||||
// - find guard with most minutes asleep
|
||||
// - create histogram and determine which minute he has slept through the most
|
||||
class Repose {
|
||||
var scheduleArray: [String] = []
|
||||
var sleepMapForGuardID: [Int : [Int]] = [:] // id : Array if ints, one for each hour; increment if asleep
|
||||
var activitiesForDay: [Int : [Activity]] = [:]
|
||||
|
||||
// Supply filename for input ex: '/home/peterr/AOC2018/Sources/AOC2018/data/day04.txt'
|
||||
init(withFile filename: String) {
|
||||
let schedule = Tools.readFile(fromPath: filename)
|
||||
scheduleArray = schedule.components(separatedBy: "\n")
|
||||
// This gurd statement is just an excuse to use guard
|
||||
// I'm assuming the last string is an empty string, if not DON'T remove the last string
|
||||
guard let lastStr = scheduleArray.last, lastStr.count == 0 else { return }
|
||||
scheduleArray.removeLast() // empty string
|
||||
// parseData(withSchedule: scheduleArray)
|
||||
}
|
||||
|
||||
// Supply test data in the form of a String
|
||||
init(withString schedule: String) {
|
||||
scheduleArray = schedule.components(separatedBy: "\n")
|
||||
// parseData(withSchedule: scheduleArray)
|
||||
}
|
||||
|
||||
static func increment(day: Int) -> Int {
|
||||
// there is a leap year every year divisible by four except for years which are both divisible by 100 and not divisible by 400.
|
||||
// Therefore, the year 2000 will be a leap year, but the years 1700, 1800, and 1900 were not.
|
||||
var retVal = 0
|
||||
let nDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
||||
// let leapnDays = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
||||
var myMonth = day / 31
|
||||
var myDay = day % 31
|
||||
if myDay == 0 {
|
||||
myDay = 31
|
||||
myMonth -= 1
|
||||
}
|
||||
// print("input Day = \(day), myMonth=\(myMonth), myDay=\(myDay)")
|
||||
if myDay == nDays[myMonth - 1] {
|
||||
retVal = (myMonth + 1) * 31 + 1
|
||||
} else {
|
||||
retVal = day + 1
|
||||
}
|
||||
// print("newDay = \(retVal)")
|
||||
return retVal
|
||||
}
|
||||
|
||||
static func parse(line: String) -> Activity {
|
||||
var retVal = Activity()
|
||||
|
||||
parseScope:
|
||||
if line.count > 0 {
|
||||
// Split line into time and action
|
||||
var parseString = line
|
||||
// print("\n\(line)")
|
||||
parseString.removeFirst()
|
||||
let splitStr = parseString.components(separatedBy: "]")
|
||||
guard splitStr.count > 1 else { break parseScope }
|
||||
let timedateSplit = splitStr[0].components(separatedBy: " ")
|
||||
guard timedateSplit.count > 1 else { break parseScope }
|
||||
let dateSplit = timedateSplit[0].components(separatedBy: "-")
|
||||
guard dateSplit.count > 2 else { break parseScope }
|
||||
let month = (Int(dateSplit[1]) ?? 0) * 31
|
||||
let date = Int(dateSplit[2]) ?? 0
|
||||
let day = month + date
|
||||
// Parse time into day and minutes
|
||||
let timeSplit = timedateSplit[1].components(separatedBy: ":")
|
||||
guard timeSplit.count > 1 else { break parseScope }
|
||||
guard let hour = Int(timeSplit[0]) else { break parseScope }
|
||||
guard let min = Int(timeSplit[1]) else { break parseScope }
|
||||
retVal.day = day
|
||||
retVal.minute = min
|
||||
if hour == 23 {
|
||||
retVal.day = Repose.increment(day: retVal.day) // Need to accomodate last day of the month
|
||||
retVal.minute = 0
|
||||
}
|
||||
retVal.sortKey = Double(retVal.day) + Double(retVal.minute) / 60.0
|
||||
// parse Action
|
||||
let actionStr = splitStr[1].suffix(splitStr[1].count - 7)
|
||||
switch actionStr {
|
||||
case "asleep" :
|
||||
retVal.action = Action.sleep
|
||||
case "up" :
|
||||
retVal.action = Action.wake
|
||||
default:
|
||||
retVal.action = Action.startShift
|
||||
var startShiftStr = actionStr
|
||||
startShiftStr.removeFirst()
|
||||
retVal.id = Int(startShiftStr.components(separatedBy: " ")[0]) ?? -1
|
||||
}
|
||||
// print("source line : \(retVal.day) \(hour) : \(retVal.minute) -- splitStr '\(actionStr)'\n")
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func add(activity: Activity) {
|
||||
if activitiesForDay[activity.day] == nil {
|
||||
// print("adding day \(activity.day) activity : \(activity)")
|
||||
activitiesForDay[activity.day] = [activity]
|
||||
} else {
|
||||
activitiesForDay[activity.day]!.append(activity)
|
||||
}
|
||||
}
|
||||
|
||||
func addActivitiesIfNecessary() {
|
||||
if activitiesForDay.keys.count == 0 {
|
||||
for act in scheduleArray {
|
||||
add(activity: Repose.parse(line: act))
|
||||
}
|
||||
for day in activitiesForDay.keys {
|
||||
activitiesForDay[day]!.sort()
|
||||
sleepMapForGuardID[findID(forDay: day)] = Array(repeating: 0, count: 60)
|
||||
// print("\(activitiesForDay[day]!)\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func findID(forDay day: Int) -> Int {
|
||||
var retVal = -1
|
||||
addActivitiesIfNecessary()
|
||||
if let array = activitiesForDay[day] {
|
||||
retVal = array.filter { $0.id != -1 }[0].id
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func buildHistogram(forDay day: Int) -> [Int] {
|
||||
var retVal = Array(repeating: 0, count: 60)
|
||||
// var sleepMapForGuardID: [Int : [Int]] = [:] // id : Array if ints, one for each hour; increment if asleep
|
||||
// var activitiesForDay: [Int : [Activity]] = [:]
|
||||
addActivitiesIfNecessary()
|
||||
if let array = activitiesForDay[day] {
|
||||
var startSleep = 0
|
||||
var endSleep = 0
|
||||
for activity in array {
|
||||
if activity.action == Action.sleep {
|
||||
startSleep = activity.minute
|
||||
} else if activity.action == Action.wake {
|
||||
endSleep = activity.minute
|
||||
for min in startSleep..<endSleep {
|
||||
retVal[min] = 1
|
||||
}
|
||||
}
|
||||
// print("\(activity)")
|
||||
}
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func add(histogram: [Int], toID id: Int) {
|
||||
guard var array = sleepMapForGuardID[id] else { return }
|
||||
guard array.count == 60 else { return }
|
||||
guard histogram.count == 60 else { return }
|
||||
for i in 0..<60 {
|
||||
array[i] = array[i] + histogram[i]
|
||||
}
|
||||
sleepMapForGuardID[id] = array
|
||||
}
|
||||
|
||||
// Sum all the minutes slept, retrun the total and the minute of most sleeps
|
||||
func sumMinutes(forID id: Int) -> (total: Int, maxMinute: Int) {
|
||||
var retVal = (total: 0, maxMinute: -1)
|
||||
guard var array = sleepMapForGuardID[id] else { return retVal }
|
||||
guard array.count == 60 else { return retVal }
|
||||
for i in 0..<60 {
|
||||
retVal.total += array[i]
|
||||
}
|
||||
retVal.maxMinute = array.firstIndex(of: (array.max() ?? 1)) ?? 0
|
||||
// print("ID:\(id), retVal:\(retVal)")
|
||||
return retVal
|
||||
}
|
||||
|
||||
func findGuard() -> (id: Int, minute: Int) {
|
||||
var retVal = (id: 0, minute: -1)
|
||||
addActivitiesIfNecessary()
|
||||
for day in activitiesForDay.keys {
|
||||
let hist = buildHistogram(forDay: day)
|
||||
add(histogram: hist, toID: findID(forDay: day))
|
||||
}
|
||||
var maxTime = 0
|
||||
for id in sleepMapForGuardID.keys {
|
||||
let stats = sumMinutes(forID: id)
|
||||
if stats.total > maxTime {
|
||||
maxTime = stats.total
|
||||
retVal.minute = stats.maxMinute
|
||||
retVal.id = id
|
||||
}
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
// [1518-04-04 23:59] Guard #223 begins shift
|
||||
// [1518-09-15 00:12] falls asleep
|
||||
// [1518-06-01 00:32] wakes up
|
||||
|
||||
// Need a state-machine
|
||||
// - start shift
|
||||
// - sleep
|
||||
// - wake
|
||||
// Date ID Minute
|
||||
// 000000000011111111112222222222333333333344444444445555555555
|
||||
// 012345678901234567890123456789012345678901234567890123456789
|
||||
// 11-01 #10 .....####################.....#########################.....
|
||||
// 11-03 #10 ........................#####...............................
|
||||
// #10 0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0
|
||||
// 11-02 #99 ........................................##########..........
|
||||
// 11-04 #99 ....................................##########..............
|
||||
// 11-05 #99 .............................................##########.....
|
||||
// #99 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,2,2,2,2,1,1,1,1,1,0,0,0,0,0
|
||||
}
|
||||
|
||||
class Day04: AOCDay {
|
||||
lazy var tests: (() -> ()) = day04Tests
|
||||
lazy var final: (() -> ()) = day04Final
|
||||
|
||||
let testData = """
|
||||
[1518-11-01 00:00] Guard #10 begins shift
|
||||
[1518-11-01 00:05] falls asleep
|
||||
[1518-11-01 00:25] wakes up
|
||||
[1518-11-01 00:30] falls asleep
|
||||
[1518-11-01 00:55] wakes up
|
||||
[1518-11-01 23:58] Guard #99 begins shift
|
||||
[1518-11-02 00:40] falls asleep
|
||||
[1518-11-02 00:50] wakes up
|
||||
[1518-11-03 00:05] Guard #10 begins shift
|
||||
[1518-11-03 00:24] falls asleep
|
||||
[1518-11-03 00:29] wakes up
|
||||
[1518-11-04 00:02] Guard #99 begins shift
|
||||
[1518-11-04 00:36] falls asleep
|
||||
[1518-11-04 00:46] wakes up
|
||||
[1518-11-05 00:03] Guard #99 begins shift
|
||||
[1518-11-05 00:45] falls asleep
|
||||
[1518-11-05 00:55] wakes up
|
||||
"""
|
||||
|
||||
let mapNum10 = [0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0]
|
||||
let mapNum99 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,3,2,2,2,2,1,1,1,1,1,0,0,0,0,0]
|
||||
let day342 = [0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0]
|
||||
let day344 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
||||
|
||||
func testIncrementDay() {
|
||||
var testDay = Repose.increment(day: 62)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 1", withExpression: (testDay == 2*31 + 1))
|
||||
testDay = Repose.increment(day:90)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 2", withExpression: (testDay == 3*31 + 1))
|
||||
testDay = Repose.increment(day: 124)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 3", withExpression: (testDay == 4*31 + 1))
|
||||
testDay = Repose.increment(day: 154)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 4", withExpression: (testDay == 5*31 + 1))
|
||||
testDay = Repose.increment(day: 186)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 5", withExpression: (testDay == 6*31 + 1))
|
||||
testDay = Repose.increment(day: 216)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 6", withExpression: (testDay == 7*31 + 1))
|
||||
testDay = Repose.increment(day: 248)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 7", withExpression: (testDay == 8*31 + 1))
|
||||
testDay = Repose.increment(day: 279)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 8", withExpression: (testDay == 9*31 + 1))
|
||||
testDay = Repose.increment(day: 309)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 9", withExpression: (testDay == 10*31 + 1))
|
||||
testDay = Repose.increment(day: 341)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 10", withExpression: (testDay == 11*31 + 1))
|
||||
testDay = Repose.increment(day: 371)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 11", withExpression: (testDay == 12*31 + 1))
|
||||
testDay = Repose.increment(day: 403)
|
||||
XCTAssertEqual(test: "testIncrementDay end-of-month 12", withExpression: (testDay == 13*31 + 1))
|
||||
}
|
||||
|
||||
func testPasrseLine() {
|
||||
var response = Repose.parse(line: "")
|
||||
// print("Response : \(response)")
|
||||
XCTAssertEqual(test: "testPasrseLine empty", withExpression: (response.minute == -1))
|
||||
let repo = Repose(withString: testData)
|
||||
response = Repose.parse(line: repo.scheduleArray[0])
|
||||
XCTAssertEqual(test: "testPasrseLine begin", withExpression: (response == Activity(day: 341+1, minute: 0, sortKey: 342.0, action: Action.startShift, id: 10)))
|
||||
response = Repose.parse(line: repo.scheduleArray[1])
|
||||
XCTAssertEqual(test: "testPasrseLine first asleep", withExpression: (response == Activity(day: 341+1, minute: 5, sortKey: 342.0 + 5.0/60.0, action: Action.sleep, id: -1)))
|
||||
response = Repose.parse(line: repo.scheduleArray[2])
|
||||
XCTAssertEqual(test: "testPasrseLine first wake up", withExpression: (response == Activity(day: 341+1, minute: 25, sortKey: 342.0 + 25.0/60.0, action: Action.wake, id: -1)))
|
||||
response = Repose.parse(line: repo.scheduleArray[3])
|
||||
XCTAssertEqual(test: "testPasrseLine second alseep", withExpression: (response == Activity(day: 341+1, minute: 30, sortKey: 342.0 + 0.5, action: Action.sleep, id: -1)))
|
||||
response = Repose.parse(line: repo.scheduleArray[4])
|
||||
XCTAssertEqual(test: "testPasrseLine second wake up", withExpression: (response == Activity(day: 341+1, minute: 55, sortKey: 342.0 + 55.0/60.0, action: Action.wake, id: -1)))
|
||||
response = Repose.parse(line: repo.scheduleArray[5])
|
||||
XCTAssertEqual(test: "testPasrseLine new guard", withExpression: (response == Activity(day: 341+2, minute: 0, sortKey: 343.0, action: Action.startShift, id: 99)))
|
||||
response = Repose.parse(line: repo.scheduleArray[6])
|
||||
XCTAssertEqual(test: "testPasrseLine alseep", withExpression: (response == Activity(day: 341+2, minute: 40, sortKey: 343.0 + 2.0/3.0, action: Action.sleep, id: -1)))
|
||||
response = Repose.parse(line: repo.scheduleArray[7])
|
||||
XCTAssertEqual(test: "testPasrseLine wake up", withExpression: (response == Activity(day: 341+2, minute: 50, sortKey: 343.0 + 50.0/60.0, action: Action.wake, id: -1)))
|
||||
}
|
||||
|
||||
func testAddActivity() {
|
||||
let repo = Repose(withString: testData)
|
||||
for act in repo.scheduleArray {
|
||||
repo.add(activity: Repose.parse(line: act))
|
||||
}
|
||||
XCTAssertEqual(test: "testAddActivity number of days", withExpression: (repo.activitiesForDay.keys.count == 5))
|
||||
var count = repo.activitiesForDay[342]?.count ?? 0
|
||||
// print("count : \(count)")
|
||||
XCTAssertEqual(test: "testAddActivity activies day 1", withExpression: (count == 5))
|
||||
count = repo.activitiesForDay[343]?.count ?? 0
|
||||
// print("count : \(count)")
|
||||
XCTAssertEqual(test: "testAddActivity activies day 2", withExpression: (count == 3))
|
||||
count = repo.activitiesForDay[344]?.count ?? 0
|
||||
// print("count : \(count)")
|
||||
XCTAssertEqual(test: "testAddActivity activies day 3", withExpression: (count == 3))
|
||||
}
|
||||
|
||||
func testFindIDForDay() {
|
||||
let repo = Repose(withString: testData)
|
||||
var id = repo.findID(forDay: 342)
|
||||
XCTAssertEqual(test: "testFindIDForDay activies day 342", withExpression: (id == 10))
|
||||
id = repo.findID(forDay: 343)
|
||||
XCTAssertEqual(test: "testFindIDForDay activies day 343", withExpression: (id == 99))
|
||||
id = repo.findID(forDay: 344)
|
||||
XCTAssertEqual(test: "testFindIDForDay activies day 344", withExpression: (id == 10))
|
||||
id = repo.findID(forDay: 345)
|
||||
XCTAssertEqual(test: "testFindIDForDay activies day 345", withExpression: (id == 99))
|
||||
id = repo.findID(forDay: 346)
|
||||
XCTAssertEqual(test: "testFindIDForDay activies day 346", withExpression: (id == 99))
|
||||
}
|
||||
|
||||
func testBuildHistogram() {
|
||||
let repo = Repose(withString: testData)
|
||||
var hist = repo.buildHistogram(forDay: 342)
|
||||
XCTAssertEqual(test: "testBuildHistogram activies day 342", withExpression: (hist == day342))
|
||||
hist = repo.buildHistogram(forDay: 344)
|
||||
XCTAssertEqual(test: "testBuildHistogram activies day 344", withExpression: (hist == day344))
|
||||
}
|
||||
|
||||
func testAddHistogram() {
|
||||
let repo = Repose(withString: testData)
|
||||
repo.addActivitiesIfNecessary()
|
||||
for day in repo.activitiesForDay.keys {
|
||||
let hist = repo.buildHistogram(forDay: day)
|
||||
repo.add(histogram: hist, toID: repo.findID(forDay: day))
|
||||
}
|
||||
guard let histID10 = repo.sleepMapForGuardID[10] else { return }
|
||||
guard let histID99 = repo.sleepMapForGuardID[99] else { return }
|
||||
XCTAssertEqual(test: "testAddHistogram id 10", withExpression: (histID10 == mapNum10))
|
||||
XCTAssertEqual(test: "testAddHistogram id 99", withExpression: (histID99 == mapNum99))
|
||||
}
|
||||
|
||||
func testSumMinutes() {
|
||||
let repo = Repose(withString: testData)
|
||||
repo.addActivitiesIfNecessary()
|
||||
for day in repo.activitiesForDay.keys {
|
||||
let hist = repo.buildHistogram(forDay: day)
|
||||
repo.add(histogram: hist, toID: repo.findID(forDay: day))
|
||||
}
|
||||
var tuple = repo.sumMinutes(forID: 10)
|
||||
XCTAssertEqual(test: "testSumMinutes id 10", withExpression: (tuple == (50, 24)))
|
||||
tuple = repo.sumMinutes(forID: 99)
|
||||
XCTAssertEqual(test: "testSumMinutes id 99", withExpression: (tuple == (30, 45)))
|
||||
}
|
||||
|
||||
func testFindGuard() {
|
||||
let repo = Repose(withString: testData)
|
||||
let answer = repo.findGuard()
|
||||
XCTAssertEqual(test: "testFindGuard", withExpression: (answer == (10, 24)))
|
||||
}
|
||||
|
||||
func day04Tests() {
|
||||
testIncrementDay()
|
||||
testPasrseLine()
|
||||
testAddActivity()
|
||||
testFindIDForDay()
|
||||
testBuildHistogram()
|
||||
testAddHistogram()
|
||||
testSumMinutes()
|
||||
testFindGuard()
|
||||
}
|
||||
|
||||
func day04Final() {
|
||||
let retVal = "None"
|
||||
let repo = Repose(withFile: "/home/peterr/AOC2018/Sources/AOC2018/data/day04.txt")
|
||||
// let repo = Repose(withString: testData)
|
||||
let answer = repo.findGuard()
|
||||
print("answer=\(answer)")
|
||||
print("Answer to part 1 is: \(answer.id * answer.minute)")
|
||||
print("Answer to part 2 is: \(retVal)")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue