2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-17 22:13:21 -05:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-05 10:11:26 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
2020-01-31 05:07:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-04 23:12:08 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2019-02-04 23:12:08 -05:00
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-14 13:57:31 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
2019-01-14 13:57:31 -05:00
|
|
|
|
|
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-04-09 16:52:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-06-14 21:52:04 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-04-09 16:52:21 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2017-11-10 09:34:31 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-09-08 12:09:52 -04:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-03-09 22:25:27 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 15:34:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-06 13:07:11 -05:00
|
|
|
|
2017-11-10 15:34:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-31 14:23:59 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2017-11-10 15:34:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:25 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2018-12-17 14:45:36 -05:00
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-08 14:02:45 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-08 14:02:45 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
2019-02-08 14:02:45 -05:00
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
|
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
2019-02-08 14:02:45 -05:00
|
|
|
|
2019-01-02 13:57:03 -05:00
|
|
|
|
2019-02-06 13:07:11 -05:00
|
|
|
|
2019-01-02 13:57:03 -05:00
|
|
|
|
|
|
|
|
|
2018-10-30 09:45:55 -04:00
|
|
|
|
|
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2019-02-08 14:02:45 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
2018-12-17 14:45:36 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
2019-02-20 11:30:49 -05:00
|
|
|
|
2018-10-01 14:54:59 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
2018-11-29 16:04:35 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-29 16:04:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 09:34:04 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 01:52:17 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-29 16:04:35 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-11-29 16:04:35 -05:00
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-23 12:22:21 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-23 12:22:21 -07:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2024-01-31 14:51:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2018-12-13 13:57:42 -05:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-06 14:13:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-11-06 14:13:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-11-06 14:13:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-06 14:13:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-10-26 14:43:22 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-04 10:50:12 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2018-06-01 22:46:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2020-01-17 22:13:21 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2020-01-17 22:13:21 -05:00
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-01-31 05:07:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-01-31 05:07:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
|
|
|
|
|
2018-12-17 14:45:36 -05:00
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
2018-12-17 14:45:36 -05:00
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-17 14:45:36 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-13 13:57:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-17 17:37:25 -05:00
|
|
|
|
2018-12-13 13:57:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-17 17:37:25 -05:00
|
|
|
|
2018-12-13 13:57:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-01-17 17:45:12 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-01-17 17:45:12 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-11-01 16:55:19 -04:00
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-17 22:00:41 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-14 08:30:11 -05:00
|
|
|
|
|
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-22 08:36:00 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-01-31 06:17:09 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
2020-01-31 06:17:09 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
|
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-14 00:36:59 +08:00
|
|
|
|
Xarray: move forward index correctly in xas_pause()
After xas_load(), xas->index could point to mid of found multi-index entry
and xas->index's bits under node->shift maybe non-zero. The afterward
xas_pause() will move forward xas->index with xa->node->shift with bits
under node->shift un-masked and thus skip some index unexpectedly.
Consider following case:
Assume XA_CHUNK_SHIFT is 4.
xa_store_range(xa, 16, 31, ...)
xa_store(xa, 32, ...)
XA_STATE(xas, xa, 17);
xas_for_each(&xas,...)
xas_load(&xas)
/* xas->index = 17, xas->xa_offset = 1, xas->xa_node->xa_shift = 4 */
xas_pause()
/* xas->index = 33, xas->xa_offset = 2, xas->xa_node->xa_shift = 4 */
As we can see, index of 32 is skipped unexpectedly.
Fix this by mask bit under node->xa_shift when move forward index in
xas_pause().
For now, this will not cause serious problems. Only minor problem like
cachestat return less number of page status could happen.
Link: https://lkml.kernel.org/r/20241213122523.12764-3-shikemeng@huaweicloud.com
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Mattew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-12-13 20:25:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-31 06:17:09 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-07-01 17:03:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-07-01 17:03:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-11-07 22:49:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-11-07 22:49:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
2019-07-01 17:03:29 -04:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-01 00:06:52 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2022-03-28 19:25:11 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-12-04 00:11:48 -05:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-08-15 14:13:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-08-15 14:13:29 -04:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
|
|
|
|
|
2018-08-15 14:13:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-08-15 14:13:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-15 14:13:29 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
2024-05-01 16:31:18 +01:00
|
|
|
|
|
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
2024-05-01 16:31:18 +01:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
|
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-01 16:31:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-19 08:32:31 -05:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-10-15 20:05:16 -07:00
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-28 23:20:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-31 10:41:01 -05:00
|
|
|
|
|
|
|
|
|
2018-12-28 23:20:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-21 17:54:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2019-02-21 17:36:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-21 17:54:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-21 17:36:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-12-28 23:20:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-28 23:20:44 -05:00
|
|
|
|
|
|
|
|
|
2017-11-24 14:24:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-24 14:24:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-18 09:05:56 -04:00
|
|
|
|
2017-11-24 14:24:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-24 14:24:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-24 14:24:59 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-28 16:13:16 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2018-08-28 16:13:16 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-08-28 16:13:16 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-19 09:36:29 -05:00
|
|
|
|
2018-08-28 16:13:16 -04:00
|
|
|
|
2018-11-05 13:19:54 -05:00
|
|
|
|
2018-08-28 16:13:16 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2020-10-15 20:05:13 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2024-04-16 01:18:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
mm/filemap: optimize filemap folio adding
Instead of doing multiple tree walks, do one optimism range check with
lock hold, and exit if raced with another insertion. If a shadow exists,
check it with a new xas_get_order helper before releasing the lock to
avoid redundant tree walks for getting its order.
Drop the lock and do the allocation only if a split is needed.
In the best case, it only need to walk the tree once. If it needs to
alloc and split, 3 walks are issued (One for first ranged conflict check
and order retrieving, one for the second check after allocation, one for
the insert after split).
Testing with 4K pages, in an 8G cgroup, with 16G brd as block device:
echo 3 > /proc/sys/vm/drop_caches
fio -name=cached --numjobs=16 --filename=/mnt/test.img \
--buffered=1 --ioengine=mmap --rw=randread --time_based \
--ramp_time=30s --runtime=5m --group_reporting
Before:
bw ( MiB/s): min= 1027, max= 3520, per=100.00%, avg=2445.02, stdev=18.90, samples=8691
iops : min=263001, max=901288, avg=625924.36, stdev=4837.28, samples=8691
After (+7.3%):
bw ( MiB/s): min= 493, max= 3947, per=100.00%, avg=2625.56, stdev=25.74, samples=8651
iops : min=126454, max=1010681, avg=672142.61, stdev=6590.48, samples=8651
Test result with THP (do a THP randread then switch to 4K page in hope it
issues a lot of splitting):
echo 3 > /proc/sys/vm/drop_caches
fio -name=cached --numjobs=16 --filename=/mnt/test.img \
--buffered=1 --ioengine=mmap -thp=1 --readonly \
--rw=randread --time_based --ramp_time=30s --runtime=10m \
--group_reporting
fio -name=cached --numjobs=16 --filename=/mnt/test.img \
--buffered=1 --ioengine=mmap \
--rw=randread --time_based --runtime=5s --group_reporting
Before:
bw ( KiB/s): min= 4141, max=14202, per=100.00%, avg=7935.51, stdev=96.85, samples=18976
iops : min= 1029, max= 3548, avg=1979.52, stdev=24.23, samples=18976·
READ: bw=4545B/s (4545B/s), 4545B/s-4545B/s (4545B/s-4545B/s), io=64.0KiB (65.5kB), run=14419-14419msec
After (+12.5%):
bw ( KiB/s): min= 4611, max=15370, per=100.00%, avg=8928.74, stdev=105.17, samples=19146
iops : min= 1151, max= 3842, avg=2231.27, stdev=26.29, samples=19146
READ: bw=4635B/s (4635B/s), 4635B/s-4635B/s (4635B/s-4635B/s), io=64.0KiB (65.5kB), run=14137-14137msec
The performance is better for both 4K (+7.5%) and THP (+12.5%) cached read.
Link: https://lkml.kernel.org/r/20240415171857.19244-5-ryncsn@gmail.com
Signed-off-by: Kairui Song <kasong@tencent.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-04-16 01:18:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
2017-11-17 08:16:34 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-10 15:15:08 -05:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
2025-01-30 16:09:20 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|
2024-05-31 20:08:37 -07:00
|
|
|
|
2017-11-07 14:57:46 -05:00
|
|
|
|