diff options
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | bin/Makefile | 18 | ||||
-rwxr-xr-x | bin/cleaner.py | 62 | ||||
-rwxr-xr-x | bin/export.py | 158 | ||||
-rw-r--r-- | doc/TODO.txt | 31 | ||||
-rw-r--r-- | doc/redirects.json | 1 | ||||
-rw-r--r-- | redirects.json | 1 |
7 files changed, 275 insertions, 2 deletions
@@ -1,11 +1,13 @@ | |||
1 | all: install build serve | 1 | all: install build serve |
2 | 2 | ||
3 | install: venv | 3 | install: venv |
4 | python3 -m venv ./venv | ||
5 | ./venv/bin/pip install -U "Nikola[extras]" | 4 | ./venv/bin/pip install -U "Nikola[extras]" |
6 | 5 | ||
6 | venv: | ||
7 | python3 -m venv ./venv | ||
8 | |||
7 | build: | 9 | build: |
8 | ./venv/bin/nikola build --backend=sqlite3 | 10 | ./venv/bin/nikola build --backend=sqlite3 |
9 | 11 | ||
10 | serve: | 12 | serve: |
11 | ./venv/bin/nikola auto --backend=sqlite3 | 13 | ./venv/bin/nikola serve |
diff --git a/bin/Makefile b/bin/Makefile new file mode 100644 index 00000000..10ac0d1e --- /dev/null +++ b/bin/Makefile | |||
@@ -0,0 +1,18 @@ | |||
1 | all: rebuild nikola build | ||
2 | |||
3 | rebuild: | ||
4 | rm -rf git dump | ||
5 | ./export.py | ||
6 | rm git/pages/updates.md | ||
7 | |||
8 | nikola: | ||
9 | venv/bin/nikola init -q git | ||
10 | cp site/conf.py git | ||
11 | cd git; nikola plugin -i localsearch | ||
12 | cd git; nikola theme -n ccc --parent=bootstrap4 | ||
13 | cp -r site/themes/ccc git/themes/ | ||
14 | cp -r site/data site/shortcodes git/ | ||
15 | cp -r site/index.rst site/index.en.rst site/search.html site/cpu site/themen git/pages/ | ||
16 | |||
17 | build: | ||
18 | cd git; nikola build --backend=sqlite3 | ||
diff --git a/bin/cleaner.py b/bin/cleaner.py new file mode 100755 index 00000000..d8c999da --- /dev/null +++ b/bin/cleaner.py | |||
@@ -0,0 +1,62 @@ | |||
1 | #! venv/bin/python | ||
2 | import psycopg2 | ||
3 | import psycopg2.extras | ||
4 | import pathlib | ||
5 | import os.path | ||
6 | import datetime | ||
7 | import pypandoc | ||
8 | from bs4 import BeautifulSoup | ||
9 | from datetime import timedelta, datetime, tzinfo | ||
10 | #from langdetect import detect | ||
11 | import sys | ||
12 | import re | ||
13 | |||
14 | conn = psycopg2.connect(database="cccms_dev", user="postgres", password="", host="127.0.0.1") | ||
15 | cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) | ||
16 | |||
17 | cursor.execute("select * from page_translations") | ||
18 | page_translations = cursor.fetchall() | ||
19 | |||
20 | fo = open("orig.txt", "w") | ||
21 | fm = open("modi.txt", "w") | ||
22 | |||
23 | for translation in page_translations: | ||
24 | body = translation.get('body') | ||
25 | cursor.execute("select * from pages where id = %s", [translation['page_id']]) | ||
26 | page = cursor.fetchone() | ||
27 | |||
28 | if not body: | ||
29 | continue | ||
30 | |||
31 | if not '<p id=' in body: | ||
32 | continue | ||
33 | |||
34 | fo.write(body) | ||
35 | |||
36 | print( 'Needing fixup: {}'.format(page['id'])) | ||
37 | soup = BeautifulSoup(body, 'html5lib') | ||
38 | |||
39 | # https://stackoverflow.com/questions/10555932/how-do-i-use-beautifulsoup-to-replace-a-tag-with-its-contents | ||
40 | # for match in soup.findAll('div'): | ||
41 | # match.replaceWithChildren() | ||
42 | |||
43 | # https://stackoverflow.com/questions/33500888/how-to-remove-tags-that-have-no-content | ||
44 | [x.decompose() for x in soup.findAll(lambda tag: (not tag.contents or len(tag.get_text(strip=True)) <= 0) and not tag.name == 'br' )] | ||
45 | |||
46 | # for elm in soup.find_all('span', style=re.compile(r"text-decoration: underline;")): | ||
47 | # elm.name = 'u' | ||
48 | # del elm.attrs['style'] | ||
49 | |||
50 | # for elm in soup.find_all('span', style=re.compile(r"font-weight: bold;")): | ||
51 | # elm.name = 'b' | ||
52 | # del elm.attrs['style'] | ||
53 | |||
54 | # print(soup.prettify()) | ||
55 | |||
56 | for elm in soup.find_all('p', id=re.compile(r"magic")): | ||
57 | del elm.attrs | ||
58 | |||
59 | if soup.body and soup.body.children: | ||
60 | fm.write("".join([str(x) for x in soup.body.children])) | ||
61 | cursor.execute("update page_translations set body = %s where id = %s", ["".join([str(x) for x in soup.body.children]), translation['id']]) | ||
62 | conn.commit() | ||
diff --git a/bin/export.py b/bin/export.py new file mode 100755 index 00000000..26460e8f --- /dev/null +++ b/bin/export.py | |||
@@ -0,0 +1,158 @@ | |||
1 | #! venv/bin/python | ||
2 | import psycopg2 | ||
3 | import psycopg2.extras | ||
4 | import pathlib | ||
5 | import os.path | ||
6 | import datetime | ||
7 | import pypandoc | ||
8 | import json | ||
9 | from datetime import timedelta, datetime, tzinfo | ||
10 | #from langdetect import detect | ||
11 | import sys | ||
12 | |||
13 | conn = psycopg2.connect(database="cccms_dev", user="postgres", password="", host="127.0.0.1") | ||
14 | cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) | ||
15 | lcursor = conn.cursor() | ||
16 | cursor.execute("select id, login, email, admin from users", []) | ||
17 | user = cursor.fetchall() | ||
18 | |||
19 | page_list = [] | ||
20 | redirect_list = {} | ||
21 | |||
22 | pathlib.Path(os.path.dirname('git/')).mkdir(parents=True, exist_ok=True) | ||
23 | os.system("git -C git/ init") | ||
24 | pathlib.Path(os.path.dirname('git/images/')).mkdir(parents=True, exist_ok=True) | ||
25 | pathlib.Path(os.path.dirname('git/files/')).mkdir(parents=True, exist_ok=True) | ||
26 | pathlib.Path(os.path.dirname('dump/images/')).mkdir(parents=True, exist_ok=True) | ||
27 | pathlib.Path(os.path.dirname('dump/files/')).mkdir(parents=True, exist_ok=True) | ||
28 | |||
29 | rev = 0 | ||
30 | cursor.execute("select id, name, upload_content_type, upload_file_name, upload_updated_at from assets order by id", []) | ||
31 | assets = cursor.fetchall() | ||
32 | for asset in assets: | ||
33 | if not asset.get('upload_file_name'): | ||
34 | continue | ||
35 | source = "/usr/local/www/cccms/public/system/uploads/{}/original/{}".format(asset['id'], asset['upload_file_name']) | ||
36 | destdir = 'files/' | ||
37 | if asset['upload_content_type'].startswith('image'): | ||
38 | destdir = 'images/' | ||
39 | page_list.append({ 'date': asset['upload_updated_at'], 'revision': rev, 'comment': "asset {}".format(asset['name']), 'fname': source, 'gname': destdir+asset['upload_file_name'], 'editor': 'admin', 'email': 'admin@cccms.de'}) | ||
40 | rev = rev + 1 | ||
41 | redirect_list['/public/system/uploads/{}/original/{}'.format(asset['id'], asset['upload_file_name'])] = destdir+asset['upload_file_name'] | ||
42 | |||
43 | with open('redirects.json', 'w') as outfile: | ||
44 | json.dump(redirect_list, outfile) | ||
45 | |||
46 | cursor.execute("select id, unique_name, created_at from nodes order by id", []) | ||
47 | nodes = cursor.fetchall() | ||
48 | |||
49 | for node in nodes: | ||
50 | if not 'unique_name' in node: | ||
51 | print ("WARNING: NO unique_name in node " + str(node.id)) | ||
52 | continue | ||
53 | |||
54 | if node['id'] == 1: | ||
55 | continue | ||
56 | |||
57 | if "/" in str(node['unique_name']): | ||
58 | pathlib.Path(os.path.dirname('dump/'+node['unique_name'])).mkdir(parents=True, exist_ok=True) | ||
59 | if str(node['unique_name']).startswith('updates/'): | ||
60 | pathlib.Path(os.path.dirname('git/'+node['unique_name'])).mkdir(parents=True, exist_ok=True) | ||
61 | else: | ||
62 | pathlib.Path(os.path.dirname('git/pages/'+node['unique_name'])).mkdir(parents=True, exist_ok=True) | ||
63 | |||
64 | cursor.execute("select id, revision, created_at, updated_at, published_at, user_id, editor_id from pages where node_id = %s", [node['id']]) | ||
65 | pages = cursor.fetchall() | ||
66 | |||
67 | # print ( "WORKING ON NODE: " + str(node['id'])) | ||
68 | |||
69 | for page in pages: | ||
70 | |||
71 | # ignoring unpublished pages | ||
72 | if not page['published_at']: | ||
73 | # print("UNPUBLISHED: {}\n".format(node['id'])) | ||
74 | continue | ||
75 | |||
76 | cursor.execute("select name from tags where id in (select tag_id from taggings where taggable_id = %s)", [page['id']]) | ||
77 | tags = cursor.fetchall() | ||
78 | |||
79 | editor = "admin" | ||
80 | if page['editor_id']: | ||
81 | cursor.execute("select login from users where id = %s", [page['editor_id']]) | ||
82 | e = cursor.fetchall() | ||
83 | if len(e): | ||
84 | editor = e[0].get("login", "NO-LOGIN") | ||
85 | |||
86 | creator = "admin" | ||
87 | if page['user_id']: | ||
88 | cursor.execute("select login from users where id = %s", [page['user_id']]) | ||
89 | c = cursor.fetchall() | ||
90 | if len(c): | ||
91 | creator = c[0].get("login", "NO-LOGIN") | ||
92 | |||
93 | previewimage = '' | ||
94 | cursor.execute("select upload_file_name from related_assets full join assets on related_assets.asset_id = assets.id where related_assets.page_id = %s and position = 1;", [page['id']]) | ||
95 | related_asset = cursor.fetchall() | ||
96 | if len(related_asset): | ||
97 | previewimage = related_asset[0].get('upload_file_name') | ||
98 | |||
99 | cursor.execute("select locale, title, abstract, body, created_at, updated_at from page_translations where page_id = %s", [page['id']]) | ||
100 | page_translations = cursor.fetchall() | ||
101 | for translation in page_translations: | ||
102 | if not translation.get("title"): | ||
103 | continue | ||
104 | |||
105 | if len(tags) and not isinstance(tags[0], str): | ||
106 | tags = [y for x in tags for y in x] | ||
107 | |||
108 | if translation['locale'] == 'en': | ||
109 | fname = "dump/" + node['unique_name'] + '.en.md:' + str(page['revision']) + '@' + str(int(page['updated_at'].timestamp())) | ||
110 | gitname = node['unique_name'] + '.en.md' | ||
111 | else: | ||
112 | fname = "dump/" + node['unique_name'] + '.md:' + str(page['revision']) + '@' + str(int(page['updated_at'].timestamp())) | ||
113 | gitname = node['unique_name'] + '.md' | ||
114 | |||
115 | if not gitname.startswith('updates/'): | ||
116 | gitname = 'pages/' + gitname | ||
117 | |||
118 | #lang = detect(translation.get('body')) | ||
119 | #print('{}:{} node_id {: 5d} revision {: 3d} with page_id {: 5d}, path {}'.format(lang, translation['locale'], node['id'], page['revision'], page['id'], node['unique_name'])) | ||
120 | |||
121 | # md = pypandoc.convert_text(str(translation.get('body', "")), 'md', format='html', extra_args=['--atx-headers']) | ||
122 | # rst = pypandoc.convert_text(str(translation.get('body', "")), 'rst', format='html', extra_args=['--atx-headers']) | ||
123 | # with open( "dump/" + node['unique_name'] + '.' + translation['locale'] + '.md.html:' + str(page['revision']) + '@' + str(int(page['updated_at'].timestamp())), "w") as f: | ||
124 | # f.write(pypandoc.convert_text( md, 'html', format='md', extra_args=['--atx-headers'])) | ||
125 | # with open( "dump/" + node['unique_name'] + '.' + translation['locale'] + '.rst.html:' + str(page['revision']) + '@' + str(int(page['updated_at'].timestamp())), "w") as f: | ||
126 | # f.write(pypandoc.convert_text( rst, 'html', format='rst', extra_args=['--atx-headers'])) | ||
127 | |||
128 | with open(fname, "w") as f: | ||
129 | f.write("title: {}\n".format(' '.join(translation.get("title", "").split()))) | ||
130 | f.write("date: {}\n".format(page['published_at'].strftime("%Y-%m-%d %H:%M:%S %z"))) | ||
131 | if page.get('updated_at'): | ||
132 | f.write("updated: {}\n".format(page['updated_at'].strftime("%Y-%m-%d %H:%M:%S %z"))) | ||
133 | f.write("author: {}\n".format(creator)) | ||
134 | f.write("tags: {}\n".format(', '.join(tags).lower())) | ||
135 | if previewimage: | ||
136 | f.write("previewimage: /images/{}\n".format(previewimage)) | ||
137 | f.write("\n") | ||
138 | |||
139 | # Add abstract, if one is there | ||
140 | if translation.get('abstract'): | ||
141 | f.write(str(translation.get('abstract', ""))) | ||
142 | f.write("\n\n") | ||
143 | if translation.get('body'): | ||
144 | f.write("<!-- TEASER_END -->\n\n") | ||
145 | |||
146 | f.write(pypandoc.convert_text( str(translation.get('body', "")), 'markdown-smart', format='html-native_divs-native_spans', extra_args=['--atx-headers'])) | ||
147 | userrec = next(filter(lambda person: person['login'] == editor, user)) | ||
148 | page_list.append({ 'date': page['updated_at'], 'revision': page['revision'], 'comment': "page revision {}".format(page['revision']), 'fname': fname, 'gname': gitname, 'editor': editor, 'email': userrec['email']}) | ||
149 | |||
150 | page_list.sort(key=lambda tup: (tup['date'], tup['revision'])) | ||
151 | for page in page_list: | ||
152 | print(page) | ||
153 | os.system("cp {} git/{}".format(page['fname'], page['gname'])) | ||
154 | os.system("git -C git/ add {}".format(page['gname'])) | ||
155 | os.environ['GIT_COMMITTER_NAME'] = page['editor'] | ||
156 | os.environ['GIT_COMMITTER_EMAIL'] = page['email'] | ||
157 | os.system('git -C git/ commit -m "committing {}" --author="{} <{}>" --date="{}"'.format(page['comment'], page['editor'], page['email'], page['date'])) | ||
158 | |||
diff --git a/doc/TODO.txt b/doc/TODO.txt new file mode 100644 index 00000000..93ee985f --- /dev/null +++ b/doc/TODO.txt | |||
@@ -0,0 +1,31 @@ | |||
1 | * Tweet list | ||
2 | * skin footer | ||
3 | * language selector | ||
4 | * sidebars in posts and pages | ||
5 | * import images to /image/ dir | ||
6 | |||
7 | https://alexwlchan.net/2019/11/saving-a-copy-of-a-tweet-by-typing-twurl/ | ||
8 | |||
9 | page_translations: | ||
10 | id | page_id | locale | title | abstract | body | created_at | updated_at | ||
11 | |||
12 | pages: | ||
13 | id | node_id | revision | created_at | updated_at | published_at | user_id | template_name | editor_id | ||
14 | |||
15 | nodes: | ||
16 | id | slug | unique_name | created_at | updated_at | lft | rgt | parent_id | head_id | draft_id | locking_user_id | staged_slug | staged_parent_id | ||
17 | |||
18 | |||
19 | users = select * from users | ||
20 | |||
21 | tags = select * from tags | ||
22 | taggings = select * from taggings | ||
23 | |||
24 | nodes = select * from nodes | ||
25 | for node in nodes: | ||
26 | pages = select * from pages where node_id = node.id | ||
27 | for page in pages: | ||
28 | tag_ids = select tag_id from taggings where taggable_id = page.id | ||
29 | tags = select name from tags where id in tag_ids | ||
30 | translations = select * from page_translations where page_id = page.id | ||
31 | |||
diff --git a/doc/redirects.json b/doc/redirects.json new file mode 100644 index 00000000..a16d9d55 --- /dev/null +++ b/doc/redirects.json | |||
@@ -0,0 +1 @@ | |||
{"/public/system/uploads/2/original/sigint09.jpg": "images/sigint09.jpg", "/public/system/uploads/3/original/nedapReport54-1.pdf": "files/nedapReport54-1.pdf", "/public/system/uploads/4/original/51D-Ga9q_0L.jpg": "images/51D-Ga9q_0L.jpg", "/public/system/uploads/5/original/office-2009.asc": "files/office-2009.asc", "/public/system/uploads/6/original/wau.jpg": "images/wau.jpg", "/public/system/uploads/7/original/regionaleschaos.png": "images/regionaleschaos.png", "/public/system/uploads/14/original/01.jpg": "images/01.jpg", "/public/system/uploads/15/original/02.jpg": "images/02.jpg", "/public/system/uploads/16/original/03.jpg": "images/03.jpg", "/public/system/uploads/17/original/04.jpg": "images/04.jpg", "/public/system/uploads/18/original/05.jpg": "images/05.jpg", "/public/system/uploads/19/original/06.jpg": "images/06.jpg", "/public/system/uploads/20/original/07.jpg": "images/07.jpg", "/public/system/uploads/21/original/08.jpg": "images/08.jpg", "/public/system/uploads/22/original/09.jpg": "images/09.jpg", "/public/system/uploads/23/original/10.jpg": "images/10.jpg", "/public/system/uploads/24/original/11.jpg": "images/11.jpg", "/public/system/uploads/25/original/12.jpg": "images/12.jpg", "/public/system/uploads/28/original/13.jpg": "images/13.jpg", "/public/system/uploads/29/original/14.jpg": "images/14.jpg", "/public/system/uploads/30/original/15.jpg": "images/15.jpg", "/public/system/uploads/31/original/16.jpg": "images/16.jpg", "/public/system/uploads/32/original/17.jpg": "images/17.jpg", "/public/system/uploads/33/original/18.jpg": "images/18.jpg", "/public/system/uploads/34/original/19.jpg": "images/19.jpg", "/public/system/uploads/35/original/20.jpg": "images/20.jpg", "/public/system/uploads/36/original/21.jpg": "images/21.jpg", "/public/system/uploads/37/original/22.jpg": "images/22.jpg", "/public/system/uploads/38/original/23.jpg": "images/23.jpg", "/public/system/uploads/41/original/PE-Eisenberg-20091028.pdf": "files/PE-Eisenberg-20091028.pdf", "/public/system/uploads/45/original/office-2010.asc": "files/office-2010.asc", "/public/system/uploads/46/original/79823.png": "images/79823.png", "/public/system/uploads/48/original/404.jpeg": "images/404.jpeg", "/public/system/uploads/54/original/snafu.png": "images/snafu.png", "/public/system/uploads/55/original/in-berlin_logo_neu.png": "images/in-berlin_logo_neu.png", "/public/system/uploads/56/original/de-cix.png": "images/de-cix.png", "/public/system/uploads/57/original/ecix.png": "images/ecix.png", "/public/system/uploads/58/original/hosteurope.gif": "images/hosteurope.gif", "/public/system/uploads/59/original/71579.png": "images/71579.png", "/public/system/uploads/60/original/chaosknoten-4.0.jpg": "images/chaosknoten-4.0.jpg", "/public/system/uploads/61/original/pesthoernchen.jpg": "images/pesthoernchen.jpg", "/public/system/uploads/63/original/7ce64723f28574ab72a9c82bb162074f55094698.jpg": "images/7ce64723f28574ab72a9c82bb162074f55094698.jpg", "/public/system/uploads/64/original/CCC-de-mail-2011.pdf": "files/CCC-de-mail-2011.pdf", "/public/system/uploads/65/original/kulturwertmark-neu.pdf": "files/kulturwertmark-neu.pdf", "/public/system/uploads/66/original/office-2011.asc": "files/office-2011.asc", "/public/system/uploads/67/original/Len_Sassaman.jpg": "images/Len_Sassaman.jpg", "/public/system/uploads/68/original/sassaman.jpg": "images/sassaman.jpg", "/public/system/uploads/69/original/camp2011-3.png": "images/camp2011-3.png", "/public/system/uploads/70/original/ccc_banner.jpg": "images/ccc_banner.jpg", "/public/system/uploads/71/original/ip-vds.pdf": "files/ip-vds.pdf", "/public/system/uploads/72/original/vds-keine-chance.jpg": "images/vds-keine-chance.jpg", "/public/system/uploads/73/original/ip-vds.jpg": "images/ip-vds.jpg", "/public/system/uploads/74/original/sparkasse.png": "images/sparkasse.png", "/public/system/uploads/75/original/BTW2005-FahndungseCard.pdf": "files/BTW2005-FahndungseCard.pdf", "/public/system/uploads/76/original/staatstrojaner-report23.pdf": "files/staatstrojaner-report23.pdf", "/public/system/uploads/77/original/0zapftis-release.tgz": "files/0zapftis-release.tgz", "/public/system/uploads/78/original/0zapftis.png": "images/0zapftis.png", "/public/system/uploads/79/original/Chaosknoten.png": "images/Chaosknoten.png", "/public/system/uploads/80/original/Stellungnahme_DigiTask.pdf": "files/Stellungnahme_DigiTask.pdf", "/public/system/uploads/83/original/staatstrojaner-report42.pdf": "files/staatstrojaner-report42.pdf", "/public/system/uploads/84/original/0zapftis-3.6.44-binaries.tbz": "files/0zapftis-3.6.44-binaries.tbz", "/public/system/uploads/85/original/0zapftis-release-2.tbz": "files/0zapftis-release-2.tbz", "/public/system/uploads/86/original/0zapftisdiffed_1.png": "images/0zapftisdiffed_1.png", "/public/system/uploads/87/original/FSA09-Prozessgeschichte-V20120118.pdf": "files/FSA09-Prozessgeschichte-V20120118.pdf", "/public/system/uploads/88/original/FSA09-Beschreibung-Videosequenzen-V20120118.pdf": "files/FSA09-Beschreibung-Videosequenzen-V20120118.pdf", "/public/system/uploads/89/original/FSA09-Einlassung-Angeklagter-A.pdf": "files/FSA09-Einlassung-Angeklagter-A.pdf", "/public/system/uploads/90/original/FSA09-Einlassung-Angeklagter-B.pdf": "files/FSA09-Einlassung-Angeklagter-B.pdf", "/public/system/uploads/91/original/nessuslogo.png": "images/nessuslogo.png", "/public/system/uploads/92/original/CCC-Fahndungsplakat_v0.1-4c-A3.pdf": "files/CCC-Fahndungsplakat_v0.1-4c-A3.pdf", "/public/system/uploads/93/original/0zapftis-hannover.pdf": "files/0zapftis-hannover.pdf", "/public/system/uploads/95/original/ccc-regional.jpg": "images/ccc-regional.jpg", "/public/system/uploads/96/original/sigint-top.png": "images/sigint-top.png", "/public/system/uploads/100/original/sigint-top-small.jpg": "images/sigint-top-small.jpg", "/public/system/uploads/101/original/test.pdf": "files/test.pdf", "/public/system/uploads/102/original/Schaar-Bericht.pdf": "files/Schaar-Bericht.pdf", "/public/system/uploads/103/original/Schaar-Bericht.pdf": "files/Schaar-Bericht.pdf", "/public/system/uploads/104/original/CCC20010327.jpg": "images/CCC20010327.jpg", "/public/system/uploads/105/original/nedapReport54.pdf": "files/nedapReport54.pdf", "/public/system/uploads/106/original/office-2012.asc": "files/office-2012.asc", "/public/system/uploads/107/original/Speedbone.png": "images/Speedbone.png", "/public/system/uploads/108/original/logo_ecix_171x200.png": "images/logo_ecix_171x200.png", "/public/system/uploads/109/original/Supporter-eurotransit.png": "images/Supporter-eurotransit.png", "/public/system/uploads/110/original/Supporter-eurotransit_resize.png": "images/Supporter-eurotransit_resize.png", "/public/system/uploads/111/original/hotshot.jpg": "images/hotshot.jpg", "/public/system/uploads/112/original/admin_mourning.png": "images/admin_mourning.png", "/public/system/uploads/113/original/Stellungnahme_Wahlstift.pdf": "files/Stellungnahme_Wahlstift.pdf", "/public/system/uploads/114/original/neufassung-satzung.pdf": "files/neufassung-satzung.pdf", "/public/system/uploads/115/original/neufassung-satzung.html": "files/neufassung-satzung.html", "/public/system/uploads/116/original/Geschaeftsordnung_Erfa-Beirat.pdf": "files/Geschaeftsordnung_Erfa-Beirat.pdf", "/public/system/uploads/117/original/Geschaeftsordnung_Erfa-Beirat.html": "files/Geschaeftsordnung_Erfa-Beirat.html", "/public/system/uploads/119/original/UA-neueMedien-2strikes.pdf": "files/UA-neueMedien-2strikes.pdf", "/public/system/uploads/120/original/fullcircle.jpeg": "images/fullcircle.jpeg", "/public/system/uploads/121/original/christian-lightwall.jpg": "images/christian-lightwall.jpg", "/public/system/uploads/122/original/Schaar-Staatstrojaner.pdf": "files/Schaar-Staatstrojaner.pdf", "/public/system/uploads/123/original/PE_RAVOrgBueroCCC_wg_DJT_30Sept2012.pdf": "files/PE_RAVOrgBueroCCC_wg_DJT_30Sept2012.pdf", "/public/system/uploads/124/original/antiterrordatei-final.pdf": "files/antiterrordatei-final.pdf", "/public/system/uploads/125/original/Stellenausschreibung_Bundestrojaner.png": "images/Stellenausschreibung_Bundestrojaner.png", "/public/system/uploads/126/original/stellungnahme-demail2013.pdf": "files/stellungnahme-demail2013.pdf", "/public/system/uploads/127/original/office-2013.asc": "files/office-2013.asc", "/public/system/uploads/128/original/demail_april2013.pdf": "files/demail_april2013.pdf", "/public/system/uploads/129/original/logo-sigint.png": "images/logo-sigint.png", "/public/system/uploads/130/original/logo-sigint.jpg": "images/logo-sigint.jpg", "/public/system/uploads/131/original/against_stop.jpg": "images/against_stop.jpg", "/public/system/uploads/132/original/drosselkom.jpg": "images/drosselkom.jpg", "/public/system/uploads/133/original/wortwolke.png": "images/wortwolke.png", "/public/system/uploads/134/original/freebrad_june1.jpg": "images/freebrad_june1.jpg", "/public/system/uploads/135/original/FreeBradleyManning.pdf": "files/FreeBradleyManning.pdf", "/public/system/uploads/136/original/stoererhaftung-JM.pdf": "files/stoererhaftung-JM.pdf", "/public/system/uploads/137/original/ePA-antwort.pdf": "files/ePA-antwort.pdf", "/public/system/uploads/138/original/routerzwang.pdf": "files/routerzwang.pdf", "/public/system/uploads/139/original/routerzwang.pdf": "files/routerzwang.pdf", "/public/system/uploads/140/original/claus.jpg": "images/claus.jpg", "/public/system/uploads/141/original/logo-02.png": "images/logo-02.png", "/public/system/uploads/143/original/BNetzA-Konsultation-ITSicherheit-Stromnetz.pdf": "files/BNetzA-Konsultation-ITSicherheit-Stromnetz.pdf", "/public/system/uploads/145/original/Office-2014.asc": "files/Office-2014.asc", "/public/system/uploads/148/original/stellungnahmeTKTransparenzV.pdf": "files/stellungnahmeTKTransparenzV.pdf", "/public/system/uploads/149/original/StellungnahmeDigitaleAgenda.pdf": "files/StellungnahmeDigitaleAgenda.pdf", "/public/system/uploads/150/original/VDSfinal18.pdf": "files/VDSfinal18.pdf", "/public/system/uploads/151/original/GCHQ_attacking_providers_final_PR.pdf": "files/GCHQ_attacking_providers_final_PR.pdf", "/public/system/uploads/152/original/2014_07_01_Final_grounds.pdf": "files/2014_07_01_Final_grounds.pdf", "/public/system/uploads/153/original/NSA-GBA.pdf": "files/NSA-GBA.pdf", "/public/system/uploads/154/original/NSA-GBA2014.pdf": "files/NSA-GBA2014.pdf", "/public/system/uploads/163/original/logo9.png": "images/logo9.png", "/public/system/uploads/168/original/logo9-spaced.png": "images/logo9-spaced.png", "/public/system/uploads/170/original/handelskammer.pdf": "files/handelskammer.pdf", "/public/system/uploads/173/original/bene.jpg": "images/bene.jpg", "/public/system/uploads/174/original/Privacy_Greennet_Open_Response_6_Feb_2015.pdf": "files/Privacy_Greennet_Open_Response_6_Feb_2015.pdf", "/public/system/uploads/184/original/emerson_tan_fb.png": "images/emerson_tan_fb.png", "/public/system/uploads/186/original/ITSG_Stellungnahme.pdf": "files/ITSG_Stellungnahme.pdf", "/public/system/uploads/187/original/Office-2015.asc": "files/Office-2015.asc", "/public/system/uploads/188/original/05042015_karte.png": "images/05042015_karte.png", "/public/system/uploads/189/original/BKAG_Stellungnahme.pdf": "files/BKAG_Stellungnahme.pdf", "/public/system/uploads/190/original/GBA-redacted.pdf": "files/GBA-redacted.pdf", "/public/system/uploads/191/original/landesverrat.png": "images/landesverrat.png", "/public/system/uploads/192/original/CCC-presse-pgp.asc": "files/CCC-presse-pgp.asc", "/public/system/uploads/193/original/fatuma.png": "images/fatuma.png", "/public/system/uploads/194/original/FatumaAfrah.png": "images/FatumaAfrah.png", "/public/system/uploads/195/original/fatuma9.png": "images/fatuma9.png", "/public/system/uploads/196/original/10012016_karte.png": "images/10012016_karte.png", "/public/system/uploads/201/original/Office-2016.asc": "files/Office-2016.asc", "/public/system/uploads/202/original/2016-03-26_karte.png": "images/2016-03-26_karte.png", "/public/system/uploads/203/original/media.png": "images/media.png", "/public/system/uploads/209/original/192_M_Stellungnahme_C3W_f.pdf": "files/192_M_Stellungnahme_C3W_f.pdf", "/public/system/uploads/210/original/staatstrojanerAT.png": "images/staatstrojanerAT.png", "/public/system/uploads/211/original/pferdAT.png": "images/pferdAT.png", "/public/system/uploads/213/original/trojanerAT.png": "images/trojanerAT.png", "/public/system/uploads/214/original/pferd-oesterreich.png": "images/pferd-oesterreich.png", "/public/system/uploads/215/original/AT-trojaner.png": "images/AT-trojaner.png", "/public/system/uploads/216/original/quellen-tkue-CCC.pdf": "files/quellen-tkue-CCC.pdf", "/public/system/uploads/217/original/Abmahnbeantworter-Screenshot.png": "images/Abmahnbeantworter-Screenshot.png", "/public/system/uploads/218/original/2016-09-19_karte.png": "images/2016-09-19_karte.png", "/public/system/uploads/219/original/Stellungnahme-CCC_TK-entwurf.pdf": "files/Stellungnahme-CCC_TK-entwurf.pdf", "/public/system/uploads/220/original/beweisbeschluss-nsaua-ccc.pdf": "files/beweisbeschluss-nsaua-ccc.pdf", "/public/system/uploads/221/original/ccc-\u0430\u043d\u0430\u043b\u0438\u0437\u0430.pdf": "files/ccc-\u0430\u043d\u0430\u043b\u0438\u0437\u0430.pdf", "/public/system/uploads/224/original/Reisepass-zappen.mp4": "files/Reisepass-zappen.mp4", "/public/system/uploads/225/original/ccc-stellungnahme-eID.pdf": "files/ccc-stellungnahme-eID.pdf", "/public/system/uploads/226/original/chaos_macht_schule.png": "images/chaos_macht_schule.png", "/public/system/uploads/227/original/Stellungnahme_CCC-Staatstrojaner.pdf": "files/Stellungnahme_CCC-Staatstrojaner.pdf", "/public/system/uploads/228/original/Office-2017.asc": "files/Office-2017.asc", "/public/system/uploads/229/original/Logo-PC-Wahl.jpg": "images/Logo-PC-Wahl.jpg", "/public/system/uploads/230/original/PC-Wahl_Bericht_CCC.pdf": "files/PC-Wahl_Bericht_CCC.pdf", "/public/system/uploads/231/original/PC-Wahl-Logo.jpg": "images/PC-Wahl-Logo.jpg", "/public/system/uploads/232/original/LogoPC-wahl.jpg": "images/LogoPC-wahl.jpg", "/public/system/uploads/233/original/pmpc-logo.jpg": "images/pmpc-logo.jpg", "/public/system/uploads/234/original/pmpc.jpg": "images/pmpc.jpg", "/public/system/uploads/235/original/pcw_findefehler.png": "images/pcw_findefehler.png", "/public/system/uploads/236/original/holdmybeer.png": "images/holdmybeer.png", "/public/system/uploads/237/original/PC-Wahl_Bericht_CCC.pdf": "files/PC-Wahl_Bericht_CCC.pdf", "/public/system/uploads/238/original/ccc-presse-pgp.asc": "files/ccc-presse-pgp.asc", "/public/system/uploads/239/original/Analyse_der_Ladestationen.jpg": "images/Analyse_der_Ladestationen.jpg", "/public/system/uploads/240/original/Elektroauto-Simulator9.jpg": "images/Elektroauto-Simulator9.jpg", "/public/system/uploads/241/original/Ladekarten_von_NewMotion_und_Ladenetz.jpg": "images/Ladekarten_von_NewMotion_und_Ladenetz.jpg", "/public/system/uploads/242/original/Ladesa\u0308ule_in_Kaiserslautern9.jpg": "images/Ladesa\u0308ule_in_Kaiserslautern9.jpg", "/public/system/uploads/243/original/Ladestation_von_Hager_Oberseite.jpg": "images/Ladestation_von_Hager_Oberseite.jpg", "/public/system/uploads/244/original/Ladestation_von_Hager_unterseite9.jpg": "images/Ladestation_von_Hager_unterseite9.jpg", "/public/system/uploads/245/original/Ladestation_von_Hager.jpg": "images/Ladestation_von_Hager.jpg", "/public/system/uploads/246/original/MiniGratisLaden.gif": "images/MiniGratisLaden.gif", "/public/system/uploads/247/original/NFC-Karten-Analysewerkzeuge9.jpg": "images/NFC-Karten-Analysewerkzeuge9.jpg", "/public/system/uploads/248/original/USB-Port_in_der_Hager-Ladestation.jpg": "images/USB-Port_in_der_Hager-Ladestation.jpg", "/public/system/uploads/249/original/USB-Stick_bei_Manipulation_der_Ladestation.jpg": "images/USB-Stick_bei_Manipulation_der_Ladestation.jpg", "/public/system/uploads/250/original/CCC-netzneutralitaet-vodafone.pdf": "files/CCC-netzneutralitaet-vodafone.pdf", "/public/system/uploads/252/original/CCC-staatstrojaner-hessen.pdf": "files/CCC-staatstrojaner-hessen.pdf", "/public/system/uploads/253/original/Office-2018.asc": "files/Office-2018.asc", "/public/system/uploads/254/original/UploadFilter_Voss.pdf": "files/UploadFilter_Voss.pdf", "/public/system/uploads/255/original/Supporterform-de-v4.pdf": "files/Supporterform-de-v4.pdf", "/public/system/uploads/256/original/Supporterform-en-v4.pdf": "files/Supporterform-en-v4.pdf", "/public/system/uploads/257/original/Gruene-VerfSchG.pdf": "files/Gruene-VerfSchG.pdf", "/public/system/uploads/258/original/Protokoll_MV_2016_Hannover_unsigned.pdf": "files/Protokoll_MV_2016_Hannover_unsigned.pdf", "/public/system/uploads/259/original/Mehr_Demokratie.pdf": "files/Mehr_Demokratie.pdf", "/public/system/uploads/260/original/mv2018_vorlaeufige_top.pdf": "files/mv2018_vorlaeufige_top.pdf", "/public/system/uploads/261/original/Protokoll_MV_2018-1_Mainz_unsigned.pdf": "files/Protokoll_MV_2018-1_Mainz_unsigned.pdf", "/public/system/uploads/263/original/ctdo-charakter.jpg": "images/ctdo-charakter.jpg", "/public/system/uploads/264/original/ccc-staatstrojaner-niedersachsen.pdf": "files/ccc-staatstrojaner-niedersachsen.pdf", "/public/system/uploads/269/original/Supporterform-de-v5.pdf": "files/Supporterform-de-v5.pdf", "/public/system/uploads/270/original/Supporterform-en-v5.pdf": "files/Supporterform-en-v5.pdf", "/public/system/uploads/271/original/foerder.html": "files/foerder.html", "/public/system/uploads/273/original/Hello_Loop.gif": "images/Hello_Loop.gif", "/public/system/uploads/274/original/Hello_Loop.gif": "images/Hello_Loop.gif", "/public/system/uploads/275/original/Stellungnahme-CCC-Gemeinn\u00fctzigkeit-Freifunk.pdf": "files/Stellungnahme-CCC-Gemeinn\u00fctzigkeit-Freifunk.pdf", "/public/system/uploads/276/original/erfa_karte.png": "images/erfa_karte.png", "/public/system/uploads/277/original/share-botsbeautiful.jpg": "images/share-botsbeautiful.jpg", "/public/system/uploads/281/original/presse_ccc.de-2019-03-17.asc": "files/presse_ccc.de-2019-03-17.asc", "/public/system/uploads/283/original/2019_03_12_20_27_27_pw.pdf": "files/2019_03_12_20_27_27_pw.pdf", "/public/system/uploads/284/original/stellungnahme_TA_pw.pdf": "files/stellungnahme_TA_pw.pdf", "/public/system/uploads/285/original/Stellungnahme_des_Vorstands.pdf": "files/Stellungnahme_des_Vorstands.pdf", "/public/system/uploads/286/original/protokoll_2019-04-27.pdf": "files/protokoll_2019-04-27.pdf", "/public/system/uploads/287/original/BBA19_Technik.pdf": "files/BBA19_Technik.pdf", "/public/system/uploads/288/original/Stellungnahme-DigiPakt-Hessen-CmS.pdf": "files/Stellungnahme-DigiPakt-Hessen-CmS.pdf", "/public/system/uploads/290/original/BNDgesetz_CCC-Stellungnahme.pdf": "files/BNDgesetz_CCC-Stellungnahme.pdf", "/public/system/uploads/291/original/FinSpy_Report_CCC_v1.0.pdf": "files/FinSpy_Report_CCC_v1.0.pdf", "/public/system/uploads/294/original/CCC_Verschluesselung_staerken.pdf": "files/CCC_Verschluesselung_staerken.pdf", "/public/system/uploads/295/original/ccc-stellungnahme-europaausschuss.pdf": "files/ccc-stellungnahme-europaausschuss.pdf", "/public/system/uploads/296/original/Office-2020.asc": "files/Office-2020.asc", "/public/system/uploads/297/original/CCC_Analyse_Datenspende.pdf": "files/CCC_Analyse_Datenspende.pdf", "/public/system/uploads/298/original/Offener_Brief_CoronaTracingApp.pdf": "files/Offener_Brief_CoronaTracingApp.pdf", "/public/system/uploads/299/original/Offener_Brief_Corona_App_Bundeskanzleramt.pdf": "files/Offener_Brief_Corona_App_Bundeskanzleramt.pdf", "/public/system/uploads/300/original/Offener_Brief_Corona_App_BMG.pdf": "files/Offener_Brief_Corona_App_BMG.pdf", "/public/system/uploads/301/original/Stellungnahme_Patientendaten-Schutz-Gesetz_PDSG_CCC.pdf": "files/Stellungnahme_Patientendaten-Schutz-Gesetz_PDSG_CCC.pdf"} \ No newline at end of file | |||
diff --git a/redirects.json b/redirects.json new file mode 100644 index 00000000..a16d9d55 --- /dev/null +++ b/redirects.json | |||
@@ -0,0 +1 @@ | |||
{"/public/system/uploads/2/original/sigint09.jpg": "images/sigint09.jpg", "/public/system/uploads/3/original/nedapReport54-1.pdf": "files/nedapReport54-1.pdf", "/public/system/uploads/4/original/51D-Ga9q_0L.jpg": "images/51D-Ga9q_0L.jpg", "/public/system/uploads/5/original/office-2009.asc": "files/office-2009.asc", "/public/system/uploads/6/original/wau.jpg": "images/wau.jpg", "/public/system/uploads/7/original/regionaleschaos.png": "images/regionaleschaos.png", "/public/system/uploads/14/original/01.jpg": "images/01.jpg", "/public/system/uploads/15/original/02.jpg": "images/02.jpg", "/public/system/uploads/16/original/03.jpg": "images/03.jpg", "/public/system/uploads/17/original/04.jpg": "images/04.jpg", "/public/system/uploads/18/original/05.jpg": "images/05.jpg", "/public/system/uploads/19/original/06.jpg": "images/06.jpg", "/public/system/uploads/20/original/07.jpg": "images/07.jpg", "/public/system/uploads/21/original/08.jpg": "images/08.jpg", "/public/system/uploads/22/original/09.jpg": "images/09.jpg", "/public/system/uploads/23/original/10.jpg": "images/10.jpg", "/public/system/uploads/24/original/11.jpg": "images/11.jpg", "/public/system/uploads/25/original/12.jpg": "images/12.jpg", "/public/system/uploads/28/original/13.jpg": "images/13.jpg", "/public/system/uploads/29/original/14.jpg": "images/14.jpg", "/public/system/uploads/30/original/15.jpg": "images/15.jpg", "/public/system/uploads/31/original/16.jpg": "images/16.jpg", "/public/system/uploads/32/original/17.jpg": "images/17.jpg", "/public/system/uploads/33/original/18.jpg": "images/18.jpg", "/public/system/uploads/34/original/19.jpg": "images/19.jpg", "/public/system/uploads/35/original/20.jpg": "images/20.jpg", "/public/system/uploads/36/original/21.jpg": "images/21.jpg", "/public/system/uploads/37/original/22.jpg": "images/22.jpg", "/public/system/uploads/38/original/23.jpg": "images/23.jpg", "/public/system/uploads/41/original/PE-Eisenberg-20091028.pdf": "files/PE-Eisenberg-20091028.pdf", "/public/system/uploads/45/original/office-2010.asc": "files/office-2010.asc", "/public/system/uploads/46/original/79823.png": "images/79823.png", "/public/system/uploads/48/original/404.jpeg": "images/404.jpeg", "/public/system/uploads/54/original/snafu.png": "images/snafu.png", "/public/system/uploads/55/original/in-berlin_logo_neu.png": "images/in-berlin_logo_neu.png", "/public/system/uploads/56/original/de-cix.png": "images/de-cix.png", "/public/system/uploads/57/original/ecix.png": "images/ecix.png", "/public/system/uploads/58/original/hosteurope.gif": "images/hosteurope.gif", "/public/system/uploads/59/original/71579.png": "images/71579.png", "/public/system/uploads/60/original/chaosknoten-4.0.jpg": "images/chaosknoten-4.0.jpg", "/public/system/uploads/61/original/pesthoernchen.jpg": "images/pesthoernchen.jpg", "/public/system/uploads/63/original/7ce64723f28574ab72a9c82bb162074f55094698.jpg": "images/7ce64723f28574ab72a9c82bb162074f55094698.jpg", "/public/system/uploads/64/original/CCC-de-mail-2011.pdf": "files/CCC-de-mail-2011.pdf", "/public/system/uploads/65/original/kulturwertmark-neu.pdf": "files/kulturwertmark-neu.pdf", "/public/system/uploads/66/original/office-2011.asc": "files/office-2011.asc", "/public/system/uploads/67/original/Len_Sassaman.jpg": "images/Len_Sassaman.jpg", "/public/system/uploads/68/original/sassaman.jpg": "images/sassaman.jpg", "/public/system/uploads/69/original/camp2011-3.png": "images/camp2011-3.png", "/public/system/uploads/70/original/ccc_banner.jpg": "images/ccc_banner.jpg", "/public/system/uploads/71/original/ip-vds.pdf": "files/ip-vds.pdf", "/public/system/uploads/72/original/vds-keine-chance.jpg": "images/vds-keine-chance.jpg", "/public/system/uploads/73/original/ip-vds.jpg": "images/ip-vds.jpg", "/public/system/uploads/74/original/sparkasse.png": "images/sparkasse.png", "/public/system/uploads/75/original/BTW2005-FahndungseCard.pdf": "files/BTW2005-FahndungseCard.pdf", "/public/system/uploads/76/original/staatstrojaner-report23.pdf": "files/staatstrojaner-report23.pdf", "/public/system/uploads/77/original/0zapftis-release.tgz": "files/0zapftis-release.tgz", "/public/system/uploads/78/original/0zapftis.png": "images/0zapftis.png", "/public/system/uploads/79/original/Chaosknoten.png": "images/Chaosknoten.png", "/public/system/uploads/80/original/Stellungnahme_DigiTask.pdf": "files/Stellungnahme_DigiTask.pdf", "/public/system/uploads/83/original/staatstrojaner-report42.pdf": "files/staatstrojaner-report42.pdf", "/public/system/uploads/84/original/0zapftis-3.6.44-binaries.tbz": "files/0zapftis-3.6.44-binaries.tbz", "/public/system/uploads/85/original/0zapftis-release-2.tbz": "files/0zapftis-release-2.tbz", "/public/system/uploads/86/original/0zapftisdiffed_1.png": "images/0zapftisdiffed_1.png", "/public/system/uploads/87/original/FSA09-Prozessgeschichte-V20120118.pdf": "files/FSA09-Prozessgeschichte-V20120118.pdf", "/public/system/uploads/88/original/FSA09-Beschreibung-Videosequenzen-V20120118.pdf": "files/FSA09-Beschreibung-Videosequenzen-V20120118.pdf", "/public/system/uploads/89/original/FSA09-Einlassung-Angeklagter-A.pdf": "files/FSA09-Einlassung-Angeklagter-A.pdf", "/public/system/uploads/90/original/FSA09-Einlassung-Angeklagter-B.pdf": "files/FSA09-Einlassung-Angeklagter-B.pdf", "/public/system/uploads/91/original/nessuslogo.png": "images/nessuslogo.png", "/public/system/uploads/92/original/CCC-Fahndungsplakat_v0.1-4c-A3.pdf": "files/CCC-Fahndungsplakat_v0.1-4c-A3.pdf", "/public/system/uploads/93/original/0zapftis-hannover.pdf": "files/0zapftis-hannover.pdf", "/public/system/uploads/95/original/ccc-regional.jpg": "images/ccc-regional.jpg", "/public/system/uploads/96/original/sigint-top.png": "images/sigint-top.png", "/public/system/uploads/100/original/sigint-top-small.jpg": "images/sigint-top-small.jpg", "/public/system/uploads/101/original/test.pdf": "files/test.pdf", "/public/system/uploads/102/original/Schaar-Bericht.pdf": "files/Schaar-Bericht.pdf", "/public/system/uploads/103/original/Schaar-Bericht.pdf": "files/Schaar-Bericht.pdf", "/public/system/uploads/104/original/CCC20010327.jpg": "images/CCC20010327.jpg", "/public/system/uploads/105/original/nedapReport54.pdf": "files/nedapReport54.pdf", "/public/system/uploads/106/original/office-2012.asc": "files/office-2012.asc", "/public/system/uploads/107/original/Speedbone.png": "images/Speedbone.png", "/public/system/uploads/108/original/logo_ecix_171x200.png": "images/logo_ecix_171x200.png", "/public/system/uploads/109/original/Supporter-eurotransit.png": "images/Supporter-eurotransit.png", "/public/system/uploads/110/original/Supporter-eurotransit_resize.png": "images/Supporter-eurotransit_resize.png", "/public/system/uploads/111/original/hotshot.jpg": "images/hotshot.jpg", "/public/system/uploads/112/original/admin_mourning.png": "images/admin_mourning.png", "/public/system/uploads/113/original/Stellungnahme_Wahlstift.pdf": "files/Stellungnahme_Wahlstift.pdf", "/public/system/uploads/114/original/neufassung-satzung.pdf": "files/neufassung-satzung.pdf", "/public/system/uploads/115/original/neufassung-satzung.html": "files/neufassung-satzung.html", "/public/system/uploads/116/original/Geschaeftsordnung_Erfa-Beirat.pdf": "files/Geschaeftsordnung_Erfa-Beirat.pdf", "/public/system/uploads/117/original/Geschaeftsordnung_Erfa-Beirat.html": "files/Geschaeftsordnung_Erfa-Beirat.html", "/public/system/uploads/119/original/UA-neueMedien-2strikes.pdf": "files/UA-neueMedien-2strikes.pdf", "/public/system/uploads/120/original/fullcircle.jpeg": "images/fullcircle.jpeg", "/public/system/uploads/121/original/christian-lightwall.jpg": "images/christian-lightwall.jpg", "/public/system/uploads/122/original/Schaar-Staatstrojaner.pdf": "files/Schaar-Staatstrojaner.pdf", "/public/system/uploads/123/original/PE_RAVOrgBueroCCC_wg_DJT_30Sept2012.pdf": "files/PE_RAVOrgBueroCCC_wg_DJT_30Sept2012.pdf", "/public/system/uploads/124/original/antiterrordatei-final.pdf": "files/antiterrordatei-final.pdf", "/public/system/uploads/125/original/Stellenausschreibung_Bundestrojaner.png": "images/Stellenausschreibung_Bundestrojaner.png", "/public/system/uploads/126/original/stellungnahme-demail2013.pdf": "files/stellungnahme-demail2013.pdf", "/public/system/uploads/127/original/office-2013.asc": "files/office-2013.asc", "/public/system/uploads/128/original/demail_april2013.pdf": "files/demail_april2013.pdf", "/public/system/uploads/129/original/logo-sigint.png": "images/logo-sigint.png", "/public/system/uploads/130/original/logo-sigint.jpg": "images/logo-sigint.jpg", "/public/system/uploads/131/original/against_stop.jpg": "images/against_stop.jpg", "/public/system/uploads/132/original/drosselkom.jpg": "images/drosselkom.jpg", "/public/system/uploads/133/original/wortwolke.png": "images/wortwolke.png", "/public/system/uploads/134/original/freebrad_june1.jpg": "images/freebrad_june1.jpg", "/public/system/uploads/135/original/FreeBradleyManning.pdf": "files/FreeBradleyManning.pdf", "/public/system/uploads/136/original/stoererhaftung-JM.pdf": "files/stoererhaftung-JM.pdf", "/public/system/uploads/137/original/ePA-antwort.pdf": "files/ePA-antwort.pdf", "/public/system/uploads/138/original/routerzwang.pdf": "files/routerzwang.pdf", "/public/system/uploads/139/original/routerzwang.pdf": "files/routerzwang.pdf", "/public/system/uploads/140/original/claus.jpg": "images/claus.jpg", "/public/system/uploads/141/original/logo-02.png": "images/logo-02.png", "/public/system/uploads/143/original/BNetzA-Konsultation-ITSicherheit-Stromnetz.pdf": "files/BNetzA-Konsultation-ITSicherheit-Stromnetz.pdf", "/public/system/uploads/145/original/Office-2014.asc": "files/Office-2014.asc", "/public/system/uploads/148/original/stellungnahmeTKTransparenzV.pdf": "files/stellungnahmeTKTransparenzV.pdf", "/public/system/uploads/149/original/StellungnahmeDigitaleAgenda.pdf": "files/StellungnahmeDigitaleAgenda.pdf", "/public/system/uploads/150/original/VDSfinal18.pdf": "files/VDSfinal18.pdf", "/public/system/uploads/151/original/GCHQ_attacking_providers_final_PR.pdf": "files/GCHQ_attacking_providers_final_PR.pdf", "/public/system/uploads/152/original/2014_07_01_Final_grounds.pdf": "files/2014_07_01_Final_grounds.pdf", "/public/system/uploads/153/original/NSA-GBA.pdf": "files/NSA-GBA.pdf", "/public/system/uploads/154/original/NSA-GBA2014.pdf": "files/NSA-GBA2014.pdf", "/public/system/uploads/163/original/logo9.png": "images/logo9.png", "/public/system/uploads/168/original/logo9-spaced.png": "images/logo9-spaced.png", "/public/system/uploads/170/original/handelskammer.pdf": "files/handelskammer.pdf", "/public/system/uploads/173/original/bene.jpg": "images/bene.jpg", "/public/system/uploads/174/original/Privacy_Greennet_Open_Response_6_Feb_2015.pdf": "files/Privacy_Greennet_Open_Response_6_Feb_2015.pdf", "/public/system/uploads/184/original/emerson_tan_fb.png": "images/emerson_tan_fb.png", "/public/system/uploads/186/original/ITSG_Stellungnahme.pdf": "files/ITSG_Stellungnahme.pdf", "/public/system/uploads/187/original/Office-2015.asc": "files/Office-2015.asc", "/public/system/uploads/188/original/05042015_karte.png": "images/05042015_karte.png", "/public/system/uploads/189/original/BKAG_Stellungnahme.pdf": "files/BKAG_Stellungnahme.pdf", "/public/system/uploads/190/original/GBA-redacted.pdf": "files/GBA-redacted.pdf", "/public/system/uploads/191/original/landesverrat.png": "images/landesverrat.png", "/public/system/uploads/192/original/CCC-presse-pgp.asc": "files/CCC-presse-pgp.asc", "/public/system/uploads/193/original/fatuma.png": "images/fatuma.png", "/public/system/uploads/194/original/FatumaAfrah.png": "images/FatumaAfrah.png", "/public/system/uploads/195/original/fatuma9.png": "images/fatuma9.png", "/public/system/uploads/196/original/10012016_karte.png": "images/10012016_karte.png", "/public/system/uploads/201/original/Office-2016.asc": "files/Office-2016.asc", "/public/system/uploads/202/original/2016-03-26_karte.png": "images/2016-03-26_karte.png", "/public/system/uploads/203/original/media.png": "images/media.png", "/public/system/uploads/209/original/192_M_Stellungnahme_C3W_f.pdf": "files/192_M_Stellungnahme_C3W_f.pdf", "/public/system/uploads/210/original/staatstrojanerAT.png": "images/staatstrojanerAT.png", "/public/system/uploads/211/original/pferdAT.png": "images/pferdAT.png", "/public/system/uploads/213/original/trojanerAT.png": "images/trojanerAT.png", "/public/system/uploads/214/original/pferd-oesterreich.png": "images/pferd-oesterreich.png", "/public/system/uploads/215/original/AT-trojaner.png": "images/AT-trojaner.png", "/public/system/uploads/216/original/quellen-tkue-CCC.pdf": "files/quellen-tkue-CCC.pdf", "/public/system/uploads/217/original/Abmahnbeantworter-Screenshot.png": "images/Abmahnbeantworter-Screenshot.png", "/public/system/uploads/218/original/2016-09-19_karte.png": "images/2016-09-19_karte.png", "/public/system/uploads/219/original/Stellungnahme-CCC_TK-entwurf.pdf": "files/Stellungnahme-CCC_TK-entwurf.pdf", "/public/system/uploads/220/original/beweisbeschluss-nsaua-ccc.pdf": "files/beweisbeschluss-nsaua-ccc.pdf", "/public/system/uploads/221/original/ccc-\u0430\u043d\u0430\u043b\u0438\u0437\u0430.pdf": "files/ccc-\u0430\u043d\u0430\u043b\u0438\u0437\u0430.pdf", "/public/system/uploads/224/original/Reisepass-zappen.mp4": "files/Reisepass-zappen.mp4", "/public/system/uploads/225/original/ccc-stellungnahme-eID.pdf": "files/ccc-stellungnahme-eID.pdf", "/public/system/uploads/226/original/chaos_macht_schule.png": "images/chaos_macht_schule.png", "/public/system/uploads/227/original/Stellungnahme_CCC-Staatstrojaner.pdf": "files/Stellungnahme_CCC-Staatstrojaner.pdf", "/public/system/uploads/228/original/Office-2017.asc": "files/Office-2017.asc", "/public/system/uploads/229/original/Logo-PC-Wahl.jpg": "images/Logo-PC-Wahl.jpg", "/public/system/uploads/230/original/PC-Wahl_Bericht_CCC.pdf": "files/PC-Wahl_Bericht_CCC.pdf", "/public/system/uploads/231/original/PC-Wahl-Logo.jpg": "images/PC-Wahl-Logo.jpg", "/public/system/uploads/232/original/LogoPC-wahl.jpg": "images/LogoPC-wahl.jpg", "/public/system/uploads/233/original/pmpc-logo.jpg": "images/pmpc-logo.jpg", "/public/system/uploads/234/original/pmpc.jpg": "images/pmpc.jpg", "/public/system/uploads/235/original/pcw_findefehler.png": "images/pcw_findefehler.png", "/public/system/uploads/236/original/holdmybeer.png": "images/holdmybeer.png", "/public/system/uploads/237/original/PC-Wahl_Bericht_CCC.pdf": "files/PC-Wahl_Bericht_CCC.pdf", "/public/system/uploads/238/original/ccc-presse-pgp.asc": "files/ccc-presse-pgp.asc", "/public/system/uploads/239/original/Analyse_der_Ladestationen.jpg": "images/Analyse_der_Ladestationen.jpg", "/public/system/uploads/240/original/Elektroauto-Simulator9.jpg": "images/Elektroauto-Simulator9.jpg", "/public/system/uploads/241/original/Ladekarten_von_NewMotion_und_Ladenetz.jpg": "images/Ladekarten_von_NewMotion_und_Ladenetz.jpg", "/public/system/uploads/242/original/Ladesa\u0308ule_in_Kaiserslautern9.jpg": "images/Ladesa\u0308ule_in_Kaiserslautern9.jpg", "/public/system/uploads/243/original/Ladestation_von_Hager_Oberseite.jpg": "images/Ladestation_von_Hager_Oberseite.jpg", "/public/system/uploads/244/original/Ladestation_von_Hager_unterseite9.jpg": "images/Ladestation_von_Hager_unterseite9.jpg", "/public/system/uploads/245/original/Ladestation_von_Hager.jpg": "images/Ladestation_von_Hager.jpg", "/public/system/uploads/246/original/MiniGratisLaden.gif": "images/MiniGratisLaden.gif", "/public/system/uploads/247/original/NFC-Karten-Analysewerkzeuge9.jpg": "images/NFC-Karten-Analysewerkzeuge9.jpg", "/public/system/uploads/248/original/USB-Port_in_der_Hager-Ladestation.jpg": "images/USB-Port_in_der_Hager-Ladestation.jpg", "/public/system/uploads/249/original/USB-Stick_bei_Manipulation_der_Ladestation.jpg": "images/USB-Stick_bei_Manipulation_der_Ladestation.jpg", "/public/system/uploads/250/original/CCC-netzneutralitaet-vodafone.pdf": "files/CCC-netzneutralitaet-vodafone.pdf", "/public/system/uploads/252/original/CCC-staatstrojaner-hessen.pdf": "files/CCC-staatstrojaner-hessen.pdf", "/public/system/uploads/253/original/Office-2018.asc": "files/Office-2018.asc", "/public/system/uploads/254/original/UploadFilter_Voss.pdf": "files/UploadFilter_Voss.pdf", "/public/system/uploads/255/original/Supporterform-de-v4.pdf": "files/Supporterform-de-v4.pdf", "/public/system/uploads/256/original/Supporterform-en-v4.pdf": "files/Supporterform-en-v4.pdf", "/public/system/uploads/257/original/Gruene-VerfSchG.pdf": "files/Gruene-VerfSchG.pdf", "/public/system/uploads/258/original/Protokoll_MV_2016_Hannover_unsigned.pdf": "files/Protokoll_MV_2016_Hannover_unsigned.pdf", "/public/system/uploads/259/original/Mehr_Demokratie.pdf": "files/Mehr_Demokratie.pdf", "/public/system/uploads/260/original/mv2018_vorlaeufige_top.pdf": "files/mv2018_vorlaeufige_top.pdf", "/public/system/uploads/261/original/Protokoll_MV_2018-1_Mainz_unsigned.pdf": "files/Protokoll_MV_2018-1_Mainz_unsigned.pdf", "/public/system/uploads/263/original/ctdo-charakter.jpg": "images/ctdo-charakter.jpg", "/public/system/uploads/264/original/ccc-staatstrojaner-niedersachsen.pdf": "files/ccc-staatstrojaner-niedersachsen.pdf", "/public/system/uploads/269/original/Supporterform-de-v5.pdf": "files/Supporterform-de-v5.pdf", "/public/system/uploads/270/original/Supporterform-en-v5.pdf": "files/Supporterform-en-v5.pdf", "/public/system/uploads/271/original/foerder.html": "files/foerder.html", "/public/system/uploads/273/original/Hello_Loop.gif": "images/Hello_Loop.gif", "/public/system/uploads/274/original/Hello_Loop.gif": "images/Hello_Loop.gif", "/public/system/uploads/275/original/Stellungnahme-CCC-Gemeinn\u00fctzigkeit-Freifunk.pdf": "files/Stellungnahme-CCC-Gemeinn\u00fctzigkeit-Freifunk.pdf", "/public/system/uploads/276/original/erfa_karte.png": "images/erfa_karte.png", "/public/system/uploads/277/original/share-botsbeautiful.jpg": "images/share-botsbeautiful.jpg", "/public/system/uploads/281/original/presse_ccc.de-2019-03-17.asc": "files/presse_ccc.de-2019-03-17.asc", "/public/system/uploads/283/original/2019_03_12_20_27_27_pw.pdf": "files/2019_03_12_20_27_27_pw.pdf", "/public/system/uploads/284/original/stellungnahme_TA_pw.pdf": "files/stellungnahme_TA_pw.pdf", "/public/system/uploads/285/original/Stellungnahme_des_Vorstands.pdf": "files/Stellungnahme_des_Vorstands.pdf", "/public/system/uploads/286/original/protokoll_2019-04-27.pdf": "files/protokoll_2019-04-27.pdf", "/public/system/uploads/287/original/BBA19_Technik.pdf": "files/BBA19_Technik.pdf", "/public/system/uploads/288/original/Stellungnahme-DigiPakt-Hessen-CmS.pdf": "files/Stellungnahme-DigiPakt-Hessen-CmS.pdf", "/public/system/uploads/290/original/BNDgesetz_CCC-Stellungnahme.pdf": "files/BNDgesetz_CCC-Stellungnahme.pdf", "/public/system/uploads/291/original/FinSpy_Report_CCC_v1.0.pdf": "files/FinSpy_Report_CCC_v1.0.pdf", "/public/system/uploads/294/original/CCC_Verschluesselung_staerken.pdf": "files/CCC_Verschluesselung_staerken.pdf", "/public/system/uploads/295/original/ccc-stellungnahme-europaausschuss.pdf": "files/ccc-stellungnahme-europaausschuss.pdf", "/public/system/uploads/296/original/Office-2020.asc": "files/Office-2020.asc", "/public/system/uploads/297/original/CCC_Analyse_Datenspende.pdf": "files/CCC_Analyse_Datenspende.pdf", "/public/system/uploads/298/original/Offener_Brief_CoronaTracingApp.pdf": "files/Offener_Brief_CoronaTracingApp.pdf", "/public/system/uploads/299/original/Offener_Brief_Corona_App_Bundeskanzleramt.pdf": "files/Offener_Brief_Corona_App_Bundeskanzleramt.pdf", "/public/system/uploads/300/original/Offener_Brief_Corona_App_BMG.pdf": "files/Offener_Brief_Corona_App_BMG.pdf", "/public/system/uploads/301/original/Stellungnahme_Patientendaten-Schutz-Gesetz_PDSG_CCC.pdf": "files/Stellungnahme_Patientendaten-Schutz-Gesetz_PDSG_CCC.pdf"} \ No newline at end of file | |||