epstein-files 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- epstein_files/__init__.py +66 -131
- epstein_files/documents/document.py +12 -3
- epstein_files/documents/email.py +33 -13
- epstein_files/documents/imessage/text_message.py +11 -15
- epstein_files/documents/messenger_log.py +15 -11
- epstein_files/documents/other_file.py +13 -8
- epstein_files/epstein_files.py +51 -43
- epstein_files/util/constant/names.py +21 -24
- epstein_files/util/constant/output_files.py +29 -0
- epstein_files/util/constant/strings.py +8 -2
- epstein_files/util/constant/urls.py +11 -7
- epstein_files/util/constants.py +325 -227
- epstein_files/util/data.py +12 -33
- epstein_files/util/doc_cfg.py +7 -14
- epstein_files/util/env.py +5 -3
- epstein_files/util/file_helper.py +0 -22
- epstein_files/util/highlighted_group.py +31 -26
- epstein_files/util/logging.py +7 -0
- epstein_files/util/output.py +179 -0
- epstein_files/util/rich.py +22 -10
- {epstein_files-1.0.1.dist-info → epstein_files-1.0.3.dist-info}/METADATA +32 -7
- epstein_files-1.0.3.dist-info/RECORD +33 -0
- epstein_files-1.0.3.dist-info/entry_points.txt +7 -0
- epstein_files-1.0.1.dist-info/RECORD +0 -30
- {epstein_files-1.0.1.dist-info → epstein_files-1.0.3.dist-info}/LICENSE +0 -0
- {epstein_files-1.0.1.dist-info → epstein_files-1.0.3.dist-info}/WHEEL +0 -0
epstein_files/util/rich.py
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import json
|
|
3
3
|
from os import devnull
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import Literal
|
|
6
5
|
|
|
7
6
|
from rich.align import Align
|
|
8
7
|
from rich.console import Console, RenderableType
|
|
@@ -20,9 +19,8 @@ from epstein_files.util.constant.urls import *
|
|
|
20
19
|
from epstein_files.util.constants import FALLBACK_TIMESTAMP, HEADER_ABBREVIATIONS
|
|
21
20
|
from epstein_files.util.data import json_safe
|
|
22
21
|
from epstein_files.util.env import args
|
|
23
|
-
from epstein_files.util.file_helper import file_size_str
|
|
24
22
|
from epstein_files.util.highlighted_group import ALL_HIGHLIGHTS, HIGHLIGHTED_NAMES, EpsteinHighlighter
|
|
25
|
-
from epstein_files.util.logging import logger
|
|
23
|
+
from epstein_files.util.logging import log_file_write, logger
|
|
26
24
|
|
|
27
25
|
TITLE_WIDTH = 50
|
|
28
26
|
NUM_COLOR_KEY_COLS = 4
|
|
@@ -73,6 +71,14 @@ def add_cols_to_table(table: Table, col_names: list[str]) -> None:
|
|
|
73
71
|
table.add_column(col, justify='left' if i == 0 else 'center')
|
|
74
72
|
|
|
75
73
|
|
|
74
|
+
def build_highlighter(pattern: str) -> EpsteinHighlighter:
|
|
75
|
+
class TempHighlighter(EpsteinHighlighter):
|
|
76
|
+
"""rich.highlighter that finds and colors interesting keywords based on the above config."""
|
|
77
|
+
highlights = EpsteinHighlighter.highlights + [re.compile(fr"(?P<trump>{pattern})", re.IGNORECASE)]
|
|
78
|
+
|
|
79
|
+
return TempHighlighter()
|
|
80
|
+
|
|
81
|
+
|
|
76
82
|
def join_texts(txts: list[Text], join: str = ' ', encloser: str = '') -> Text:
|
|
77
83
|
"""Join rich.Text objs into one."""
|
|
78
84
|
if encloser:
|
|
@@ -91,8 +97,11 @@ def join_texts(txts: list[Text], join: str = ' ', encloser: str = '') -> Text:
|
|
|
91
97
|
return txt
|
|
92
98
|
|
|
93
99
|
|
|
94
|
-
def key_value_txt(key: str, value: Text | str) -> Text:
|
|
100
|
+
def key_value_txt(key: str, value: Text | int | str) -> Text:
|
|
95
101
|
"""Generate a Text obj for 'key=value'."""
|
|
102
|
+
if isinstance(value, int):
|
|
103
|
+
value = Text(f"{value}", style='cyan')
|
|
104
|
+
|
|
96
105
|
return Text('').append(key, style=KEY_STYLE).append('=', style=SYMBOL_STYLE).append(value)
|
|
97
106
|
|
|
98
107
|
|
|
@@ -139,7 +148,12 @@ def print_color_key() -> None:
|
|
|
139
148
|
|
|
140
149
|
|
|
141
150
|
def print_header(epstein_files: 'EpsteinFiles') -> None:
|
|
142
|
-
|
|
151
|
+
not_optimized_msg = f"This site isn't optimized for mobile"
|
|
152
|
+
|
|
153
|
+
if not args.all_emails:
|
|
154
|
+
not_optimized_msg += f" but if you get past the header it should be readable"
|
|
155
|
+
|
|
156
|
+
console.print(f"{not_optimized_msg}.\n", style='dim')
|
|
143
157
|
print_page_title(width=TITLE_WIDTH)
|
|
144
158
|
print_other_site_link()
|
|
145
159
|
_print_external_links()
|
|
@@ -219,10 +233,8 @@ def print_other_site_link(is_header: bool = True) -> None:
|
|
|
219
233
|
print_centered(parenthesize(Text.from_markup(markup_msg)), style='bold')
|
|
220
234
|
word_count_link = link_text_obj(WORD_COUNT_URL, 'site showing the most frequently used words in these communiques', OTHER_SITE_LINK_STYLE)
|
|
221
235
|
print_centered(parenthesize(word_count_link))
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
metadata_link = link_text_obj(JSON_METADATA_URL, 'file metadata containing author attribution explanations', OTHER_SITE_LINK_STYLE)
|
|
225
|
-
print_centered(parenthesize(metadata_link))
|
|
236
|
+
metadata_link = link_text_obj(JSON_METADATA_URL, 'metadata with author attribution explanations', OTHER_SITE_LINK_STYLE)
|
|
237
|
+
print_centered(parenthesize(metadata_link))
|
|
226
238
|
|
|
227
239
|
|
|
228
240
|
def print_page_title(expand: bool = True, width: int | None = None) -> None:
|
|
@@ -298,7 +310,7 @@ def write_html(output_path: Path) -> None:
|
|
|
298
310
|
return
|
|
299
311
|
|
|
300
312
|
console.save_html(str(output_path), code_format=CONSOLE_HTML_FORMAT, theme=HTML_TERMINAL_THEME)
|
|
301
|
-
|
|
313
|
+
log_file_write(output_path)
|
|
302
314
|
|
|
303
315
|
|
|
304
316
|
def _print_abbreviations_table() -> None:
|
|
@@ -1,26 +1,42 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: epstein-files
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.3
|
|
4
4
|
Summary: Tools for working with the Jeffrey Epstein documents released in November 2025.
|
|
5
|
+
Home-page: https://michelcrypt4d4mus.github.io/epstein_text_messages/
|
|
6
|
+
License: GPL-3.0-or-later
|
|
7
|
+
Keywords: Epstein,Jeffrey Epstein
|
|
5
8
|
Author: Michel de Cryptadamus
|
|
6
9
|
Requires-Python: >=3.11,<4.0
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Information Technology
|
|
13
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
7
15
|
Classifier: Programming Language :: Python :: 3
|
|
8
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
9
20
|
Requires-Dist: datefinder (>=0.7.3,<0.8.0)
|
|
10
21
|
Requires-Dist: inflection (>=0.5.1,<0.6.0)
|
|
11
22
|
Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
|
|
12
23
|
Requires-Dist: python-dotenv (>=1.2.1,<2.0.0)
|
|
13
24
|
Requires-Dist: requests (>=2.32.5,<3.0.0)
|
|
14
25
|
Requires-Dist: rich (>=14.2.0,<15.0.0)
|
|
26
|
+
Project-URL: Emails, https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html
|
|
27
|
+
Project-URL: Metadata, https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json
|
|
28
|
+
Project-URL: Repository, https://github.com/michelcrypt4d4mus/epstein_text_messages
|
|
29
|
+
Project-URL: TextMessages, https://michelcrypt4d4mus.github.io/epstein_text_messages
|
|
30
|
+
Project-URL: WordCounts, https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html
|
|
15
31
|
Description-Content-Type: text/markdown
|
|
16
32
|
|
|
17
33
|
# I Made Epstein's Text Messages Great Again
|
|
18
34
|
|
|
19
35
|
* [I Made Epstein's Text Messages Great Again (And You Should Read Them)](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great) post on [Substack](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great)
|
|
20
36
|
* The Epstein text messages (and some of the emails along with summary counts of sent emails to/from Epstein) generated by this code can be viewed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/).
|
|
21
|
-
* All of His Emails can be read at another page also generated by this code [here](https://michelcrypt4d4mus.github.io/
|
|
22
|
-
* Word counts for the emails and text messages are [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/
|
|
23
|
-
* Metadata containing what I have figured out about who sent or received the communications in a given file (and a brief explanation for how I figured it out for each file) is deployed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/
|
|
37
|
+
* All of His Emails can be read at another page also generated by this code [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html).
|
|
38
|
+
* Word counts for the emails and text messages are [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html).
|
|
39
|
+
* Metadata containing what I have figured out about who sent or received the communications in a given file (and a brief explanation for how I figured it out for each file) is deployed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json)
|
|
24
40
|
* Configuration variables assigning specific `HOUSE_OVERSIGHT_XXXXXX.txt` file IDs (the `111111` part) as being emails to or from particular people based on various research and contributions can be found in [constants.py](./epstein_files/util/constants.py). Everything in `constants.py` should also appear in the JSON metadata.
|
|
25
41
|
|
|
26
42
|
|
|
@@ -31,11 +47,20 @@ Description-Content-Type: text/markdown
|
|
|
31
47
|
You need to set the `DOCS_DIR` environment variable with the path to the folder of files you just downloaded when running. You can either create a `.env` file modeled on [`.env.example`](./.env.example) (which will set it permanently) or you can run with:
|
|
32
48
|
|
|
33
49
|
```bash
|
|
34
|
-
|
|
50
|
+
# Generate color highlighted texts/emails/other files
|
|
51
|
+
DOCS_DIR=/path/to/epstein/ocr_txt_files epstein_generate
|
|
52
|
+
|
|
53
|
+
# Search
|
|
54
|
+
DOCS_DIR=/path/to/epstein/ocr_txt_files epstein_search Bannon
|
|
55
|
+
|
|
56
|
+
# Show a color highlighted file
|
|
57
|
+
DOCS_DIR=/path/to/epstein/ocr_txt_files epstein_show 030999
|
|
58
|
+
# This also works
|
|
59
|
+
DOCS_DIR=/path/to/epstein/ocr_txt_files epstein_show HOUSE_OVERSIGHT_030999
|
|
35
60
|
```
|
|
36
61
|
|
|
37
|
-
Run
|
|
38
|
-
The first time you run anything it will take a few minutes to fix all the data, attribute the redacted emails, etc. Once you've run things once you can run the
|
|
62
|
+
Run `epstein_generate --help` for command line option assistance.
|
|
63
|
+
The first time you run anything it will take a few minutes to fix all the data, attribute the redacted emails, etc. Once you've run things once you can run the `epstein_generate --pickled` to load the cached fixed up data and things will be quick.
|
|
39
64
|
|
|
40
65
|
#### As A Library
|
|
41
66
|
```python
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
epstein_files/__init__.py,sha256=ovNZSEnsLnGahLlDZIai9jC6ZWo7RFd79KstrOGwJak,4861
|
|
2
|
+
epstein_files/documents/communication.py,sha256=SunZdjMhR9v6y8LlQ6jhIu8vYjSndaBK0Su1mKnhfj0,2060
|
|
3
|
+
epstein_files/documents/document.py,sha256=s6k3qqZ9pnAWBqkm45o1T4nTIUth1No2jxhiYTF3jpI,16732
|
|
4
|
+
epstein_files/documents/email.py,sha256=QRlOE3OIu_o4AU7o3XuBMzVTTV3OZCajEXpbIZUdsck,38211
|
|
5
|
+
epstein_files/documents/emails/email_header.py,sha256=wkPfSLbmzkAeQwvhf0bAeFDLPbQT-EeG0v8vNNLYktM,7502
|
|
6
|
+
epstein_files/documents/imessage/text_message.py,sha256=wfWPQhwGG5Yzyhbr1NAQAY0bzRjjqVZmh8SPl48XmAM,3025
|
|
7
|
+
epstein_files/documents/json_file.py,sha256=Vf9iHiEhUqk-hEh6lGZX_mJNWZUUQWeT-UI3FhKW0hw,1101
|
|
8
|
+
epstein_files/documents/messenger_log.py,sha256=rOSy5yMerYBQ2r_o4SvuJ7Oeu-KhZVIIlh_Csb6uar0,5860
|
|
9
|
+
epstein_files/documents/other_file.py,sha256=aD1nFkwsQ1eKb9Li1xfqEGGbqhkQlpR-6vIt5GHMyk8,9087
|
|
10
|
+
epstein_files/epstein_files.py,sha256=XLyit5LmICnP44XoQWHUgMpRLS1-QgJZDaxO15qUnsI,18349
|
|
11
|
+
epstein_files/util/constant/common_words.py,sha256=aR0UjoWmxyR49XS-DtHECQ1CiA_bK8hNP6CQ1TS9yZA,3696
|
|
12
|
+
epstein_files/util/constant/html.py,sha256=9U098TGzlghGg4WfxLYHyub5JGR17Dv7VP5i2MSu8Kk,1415
|
|
13
|
+
epstein_files/util/constant/names.py,sha256=iwnFqIceffYyLj7AaCsh3uve4Y0WbsZvHukjA1aFJWY,10104
|
|
14
|
+
epstein_files/util/constant/output_files.py,sha256=B2qEXfNI_gT2Vp5HGSld2xM0PfeZ27j65HNymSmyzX4,974
|
|
15
|
+
epstein_files/util/constant/strings.py,sha256=RBWJQnOXqBba8TwmjpvtkY8Jt54aFt4LYajoR8RanDk,1917
|
|
16
|
+
epstein_files/util/constant/urls.py,sha256=2AM7AUqJQcNjCLrB6bKdh2sMtBOn7u8a8mwNq6HC0Zk,5621
|
|
17
|
+
epstein_files/util/constants.py,sha256=GxI7RcnRgR8rDH4-dPrLlUH7q6mnhg5oK7ks56ZmpkA,110796
|
|
18
|
+
epstein_files/util/data.py,sha256=xwTqrbAi7ZDJM0iyFVOevnokP_oIQ2npkRjHzF1KGGY,2908
|
|
19
|
+
epstein_files/util/doc_cfg.py,sha256=I-n7_77hcA5DHGcqXISEjXOiTjYnTCLS7E16PUYw2kw,9736
|
|
20
|
+
epstein_files/util/env.py,sha256=mvYy3Kj576aULU6E7NPuN-5ZEVOn0Zb4HAwR8VOmUMo,4839
|
|
21
|
+
epstein_files/util/file_helper.py,sha256=v_bE10MHEcXti9DVJo4WqyOsG83Xrv05S3Vc70cYJkk,3082
|
|
22
|
+
epstein_files/util/highlighted_group.py,sha256=He6LDIhcT_YZyAkGHcOR-T_znACoEyNznKWOKH4lA40,35564
|
|
23
|
+
epstein_files/util/logging.py,sha256=b9iCTQkpAxu_3HphM5wm7VuPbWj9tocTuyUvMUTaI5A,2137
|
|
24
|
+
epstein_files/util/output.py,sha256=k4HrOKvP6Os0-LrxVRiNKk7Pw9M3RxrlYP2Eql7TFIA,7366
|
|
25
|
+
epstein_files/util/rich.py,sha256=x81QievKngC0oxsCpHRxKhjFstZ5hBVx91nFy63g_RQ,13709
|
|
26
|
+
epstein_files/util/search_result.py,sha256=1fxe0KPBQXBk4dLfu6m0QXIzYfZCzvaSkWqvghJGzxY,567
|
|
27
|
+
epstein_files/util/timer.py,sha256=8hxW4Y1JcTUfnBrHh7sL2pM9xu1sL4HFQM4CmmzTarU,837
|
|
28
|
+
epstein_files/util/word_count.py,sha256=XTINgLm01jFQlNgdiLCcVFCodXAIb1dNbaAvznoRb1o,6757
|
|
29
|
+
epstein_files-1.0.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
30
|
+
epstein_files-1.0.3.dist-info/METADATA,sha256=ZMzrOatPsGFecuYFiEGpvEHXBp9dh5GNzLO1NOuY_RM,4997
|
|
31
|
+
epstein_files-1.0.3.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
32
|
+
epstein_files-1.0.3.dist-info/entry_points.txt,sha256=EV9qTh_n9X_1MOiQnxG5hM6R5v0rfi8W4QE-bsZkw3o,238
|
|
33
|
+
epstein_files-1.0.3.dist-info/RECORD,,
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
epstein_files/__init__.py,sha256=HKOGWVzyiEl0II8s7qnO33wcTZPw8dr3HDfT7_VnY2U,7831
|
|
2
|
-
epstein_files/documents/communication.py,sha256=SunZdjMhR9v6y8LlQ6jhIu8vYjSndaBK0Su1mKnhfj0,2060
|
|
3
|
-
epstein_files/documents/document.py,sha256=E2VUuHSoam8r8pyRbWy68_cVFU9DJ0irbtYULaDBYzE,16378
|
|
4
|
-
epstein_files/documents/email.py,sha256=IpKeOuLTmHWowBvUUEp-tyTC8pwEmXg3XgLJkplQZWg,37717
|
|
5
|
-
epstein_files/documents/emails/email_header.py,sha256=wkPfSLbmzkAeQwvhf0bAeFDLPbQT-EeG0v8vNNLYktM,7502
|
|
6
|
-
epstein_files/documents/imessage/text_message.py,sha256=DMdd__L7UPad0YS49MJf_3bTVyE1BLfWafQbDQierC8,3272
|
|
7
|
-
epstein_files/documents/json_file.py,sha256=Vf9iHiEhUqk-hEh6lGZX_mJNWZUUQWeT-UI3FhKW0hw,1101
|
|
8
|
-
epstein_files/documents/messenger_log.py,sha256=-hSMFH_dyrjGLdph4SU2xQK4RpXOhkR3R_nqRrz3e1w,5620
|
|
9
|
-
epstein_files/documents/other_file.py,sha256=JbKDtNrQ1Ua5vGPlZayON5Kgy0oJ-gHcdO9l9Iv9wRo,8930
|
|
10
|
-
epstein_files/epstein_files.py,sha256=ruhl24FgOpEdcqbMcIpgyYlqEBi1ZeztQ7QmZMYANp0,17856
|
|
11
|
-
epstein_files/util/constant/common_words.py,sha256=aR0UjoWmxyR49XS-DtHECQ1CiA_bK8hNP6CQ1TS9yZA,3696
|
|
12
|
-
epstein_files/util/constant/html.py,sha256=9U098TGzlghGg4WfxLYHyub5JGR17Dv7VP5i2MSu8Kk,1415
|
|
13
|
-
epstein_files/util/constant/names.py,sha256=eSgHnOqMAy7Czfw1vJ3lvniDST7QpfuQ8XgzttXpAi8,10191
|
|
14
|
-
epstein_files/util/constant/strings.py,sha256=3JTqD0luJrC3NbGXn4q6P-gIaaNVx36P1oCmp92gAoM,1750
|
|
15
|
-
epstein_files/util/constant/urls.py,sha256=P_nnb5cIrJ2NCbd4CoRfilZ5jrOzFs30jNK50F7IjZw,5483
|
|
16
|
-
epstein_files/util/constants.py,sha256=l0TrpncCJcecar5geggLVfOJVhicWcu3zws-62Cslzg,102472
|
|
17
|
-
epstein_files/util/data.py,sha256=s7EgmQ6SC6MoUMhP8GaxglJOJpU_nRmwI-T2inLl8hs,3329
|
|
18
|
-
epstein_files/util/doc_cfg.py,sha256=AFLBp9PO2tBUYhTeNztpkWs69VPr41fCuA22IesM59g,9914
|
|
19
|
-
epstein_files/util/env.py,sha256=9wM4mKPZoJO9J5VKLP67ZR1IEMkH2UaGdIaYm2tptMQ,4581
|
|
20
|
-
epstein_files/util/file_helper.py,sha256=ea428og2gyUsMWd2GFldmAGvuqGNNHaTc7gGGSM_0aI,3827
|
|
21
|
-
epstein_files/util/highlighted_group.py,sha256=UO0pqQH29JHiOMK2psIozIeA0zinDkql-NYDGRmFUzA,35173
|
|
22
|
-
epstein_files/util/logging.py,sha256=0mABrI5TvodLDe-9svHv3YaIdSyr8PXFcu4nntW1WsI,1858
|
|
23
|
-
epstein_files/util/rich.py,sha256=cLkiSg3f68bUxobzRiBRfrgS7Ya-FK7ltpQcZXNHMX4,13317
|
|
24
|
-
epstein_files/util/search_result.py,sha256=1fxe0KPBQXBk4dLfu6m0QXIzYfZCzvaSkWqvghJGzxY,567
|
|
25
|
-
epstein_files/util/timer.py,sha256=8hxW4Y1JcTUfnBrHh7sL2pM9xu1sL4HFQM4CmmzTarU,837
|
|
26
|
-
epstein_files/util/word_count.py,sha256=XTINgLm01jFQlNgdiLCcVFCodXAIb1dNbaAvznoRb1o,6757
|
|
27
|
-
epstein_files-1.0.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
28
|
-
epstein_files-1.0.1.dist-info/METADATA,sha256=IK5B-ltx_L0-EK2Oq2Q2gVXWlhYqKoYw6HCFisqitvQ,3587
|
|
29
|
-
epstein_files-1.0.1.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
30
|
-
epstein_files-1.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|