Skip to content

Instantly share code, notes, and snippets.

@sargon
Created March 29, 2020 10:17
Show Gist options
  • Save sargon/445ed23a471db609a165a816f2be6ce8 to your computer and use it in GitHub Desktop.
Save sargon/445ed23a471db609a165a816f2be6ce8 to your computer and use it in GitHub Desktop.
matrix-synapse: Analyse Purge process
#!/usr/bin/env python3
import psycopg2
from tabulate import tabulate
from functools import reduce
connection = psycopg2.connect(host = "...",
port = 5432,
user = "...",
password = "...",
dbname = "...")
# Select the rooms we are interested in
cursor = connection.cursor()
cursor.execute("SELECT room_id FROM state_groups WHERE room_id NOT IN (select room_id from rooms) GROUP BY room_id");
rooms = [ r[0] for r in cursor]
cursor.close()
print(f"Number of rooms we have a look at: { len(rooms) }")
# Selected rows by state group query in purge process
print("StateGroups")
data = []
state_groups = []
for room in rooms:
cursor = connection.cursor()
cursor.execute(f"SELECT DISTINCT state_group FROM events INNER JOIN event_to_state_groups ON (events.event_id = event_to_state_groups.event_id) WHERE events.room_id = '{ room }'")
state_groups.extend([ c[0] for c in cursor ])
cursor.close()
print(f"Number of state groups touched by purge process: { len(state_groups) }")
# The following is not part of the purge process
data = []
no_touch_state_groups = 0
no_touch_state_groups_state = 0
for room in rooms:
cursor = connection.cursor()
cursor.execute(f"SELECT id FROM state_groups WHERE room_id ='{room}'")
sgs = [ c[0] for c in cursor ]
cursor.close();
no_touch_state_groups += len(sgs)
for sg in sgs:
cursor = connection.cursor()
cursor.execute(f"SELECT count(*) FROM state_groups_state WHERE state_group = { sg }")
no_touch_state_groups_state += reduce(lambda x,y: x + y,[ c[0] for c in cursor ])
cursor.close()
print(f"Number of state groups not touched by purge process: { no_touch_state_groups }")
print(f"Number of rows in state_state_groups not touched by purge process: { no_touch_state_groups_state }")
event_tables = [
"event_auth",
"event_edges",
"event_push_actions_staging",
"event_reference_hashes",
"event_relations",
"event_to_state_groups",
"redactions",
"rejections",
"state_events",
]
# Numer of rows in the giant table touched by the above query
cnt = 0
for sg in state_groups:
cursor = connection.cursor()
cursor.execute(f"SELECT count(*) FROM state_groups_state WHERE state_group = { sg }")
for c in cursor:
cnt += c[0]
cursor.close()
print(f"Entries in state_groups_state: {cnt}")
# Following steps are part of the purge process
# Purge step for tables with an event_id index, but none on room_id
print("Tables with event_id")
cnt = 0
data = []
for room in rooms:
row = [room]
for table in event_tables:
cursor = connection.cursor()
cursor.execute(f"SELECT count(*) FROM { table } WHERE event_id IN (SELECT event_id FROM events WHERE room_id = '{ room }')")
v = cursor.fetchone()[0]
cnt = cnt + v
row.append(v)
cursor.close()
data.append(row)
# Purge step for table with an room_id index
headers = ["Room"]
headers.extend(event_tables)
print(tabulate(data,headers=headers))
print(f"Columns: { cnt }")
room_tables = [
"current_state_events",
"event_backward_extremities",
"event_forward_extremities",
"event_json",
"event_push_actions",
"event_search",
"events",
"group_rooms",
"public_room_list_stream",
"receipts_graph",
"receipts_linearized",
"room_aliases",
"room_depth",
"room_memberships",
"room_stats_state",
"room_stats_current",
"room_stats_historical",
"room_stats_earliest_token",
"rooms",
"stream_ordering_to_exterm",
"users_in_public_rooms",
"users_who_share_private_rooms",
"appservice_room_list",
"e2e_room_keys",
"event_push_summary",
"pusher_throttle",
"group_summary_rooms",
"local_invites",
"room_account_data",
"room_tags",
"local_current_membership"
]
cnt = 0
for room in rooms:
row = [room]
for table in room_tables:
cursor = connection.cursor()
cursor.execute(f"SELECT count(*) FROM { table } WHERE room_id = '{ room }'")
v = cursor.fetchone()[0]
cnt = cnt + v
row.append(v)
cursor.close()
data.append(row)
print("Tables with room_id")
headers = ["Room"]
headers.extend(room_tables)
print(tabulate(data,headers=headers))
print(f"Columns: { cnt }")
Number of rooms we have a look at: 57
StateGroups
Number of state groups touched by purge process: 35
Number of state groups not touched by purge process: 46840
Number of rows in state_state_groups not touched by purge process: 10466145
Entries in state_groups_state: 35
Tables with event_id
Room event_auth event_edges event_push_actions_staging event_reference_hashes event_relations event_to_state_groups redactions rejections state_events
---------------------------------------- ------------ ------------- ---------------------------- ------------------------ ----------------- ----------------------- ------------ ------------ --------------
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0
!GgqMirLCzUBQrbwlbg:irc.hackint.org 7 2 0 2 0 1 0 0 2
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 7 3 0 2 0 1 0 0 2
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0
!VYzsbIgRIvGuTjgfzy:matrix.org 7 2 0 2 0 1 0 0 2
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0
!ccJTTFjQIxEptZziVi:irc.hackint.org 7 2 0 2 0 1 0 0 2
!wVcgJmqQrLsNbqHaSP:matrix.org 7 2 0 2 0 1 0 0 2
!gyXWdCXGiuXdRoUCti:matrix.org 7 2 0 2 0 1 0 0 2
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0
!FTxQUQNaHaldBhUuJY:irc.hackint.org 67 17 0 17 0 1 0 0 17
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 18 5 0 5 0 2 0 0 5
!vdiYurXiyDOISdvPFo:irc.hackint.org 7 2 0 2 0 1 0 0 2
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0
!teSKuglkxpXJYiAQsR:matrix.org 7 2 0 2 0 1 0 0 2
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 11 3 0 3 0 1 0 0 3
!sbqNtsANEFxdXwUXLr:irc.hackint.org 7 2 0 2 0 1 0 0 2
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!xCgOSOWzqdpoCKNpnP:matrix.org 7 2 0 2 0 1 0 0 2
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0
!HbvfEAdrvyIXsNDOLI:matrix.org 7 2 0 2 0 1 0 0 2
!lXqZcxFVXKAPayZdGl:matrix.org 7 2 0 2 0 1 0 0 2
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0
!XqBunHwQIXUiqCaoxq:matrix.org 8 9 0 5 0 0 0 1 5
!batlctBlslNTdSHoHB:irc.hackint.org 7 2 0 2 0 1 0 0 2
!uwGLwXtJlAYcxKzChl:matrix.org 7 2 0 2 0 1 0 0 2
!gVgKXXnxkQJJjJLzId:irc.hackint.org 7 2 0 2 0 1 0 0 2
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 7 2 0 2 0 1 0 0 2
!RyMksNyrKELkTxXqvb:irc.hackint.org 7 2 0 2 0 1 0 0 2
!QCWDezAlLwiDbwlxjH:irc.hackint.org 7 2 0 2 0 1 0 0 2
!PcRMDpMgUrARpPNGKq:matrix.org 7 2 0 2 0 1 0 0 2
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 7 2 0 2 0 1 0 0 2
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0
!drmkAYovWTAEksWYIT:irc.hackint.org 7 2 0 2 0 1 0 0 2
Columns: 638
Tables with room_id
Room current_state_events event_backward_extremities event_forward_extremities event_json event_push_actions event_search events group_rooms public_room_list_stream receipts_graph receipts_linearized room_aliases room_depth room_memberships room_stats_state room_stats_current room_stats_historical room_stats_earliest_token rooms stream_ordering_to_exterm users_in_public_rooms users_who_share_private_rooms appservice_room_list e2e_room_keys event_push_summary pusher_throttle group_summary_rooms local_invites room_account_data room_tags local_current_membership
---------------------------------------- ---------------------- ---------------------------- --------------------------- ------------ -------------------- -------------- -------- ------------- ------------------------- ---------------- --------------------- -------------- ------------ ------------------ ------------------ -------------------- ----------------------- --------------------------- ------- --------------------------- ----------------------- ------------------------------- ---------------------- --------------- -------------------- ----------------- --------------------- --------------- ------------------- ----------- --------------------------
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0
!GgqMirLCzUBQrbwlbg:irc.hackint.org 7 2 0 2 0 1 0 0 2
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 7 3 0 2 0 1 0 0 2
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0
!VYzsbIgRIvGuTjgfzy:matrix.org 7 2 0 2 0 1 0 0 2
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0
!ccJTTFjQIxEptZziVi:irc.hackint.org 7 2 0 2 0 1 0 0 2
!wVcgJmqQrLsNbqHaSP:matrix.org 7 2 0 2 0 1 0 0 2
!gyXWdCXGiuXdRoUCti:matrix.org 7 2 0 2 0 1 0 0 2
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0
!FTxQUQNaHaldBhUuJY:irc.hackint.org 67 17 0 17 0 1 0 0 17
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 18 5 0 5 0 2 0 0 5
!vdiYurXiyDOISdvPFo:irc.hackint.org 7 2 0 2 0 1 0 0 2
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0
!teSKuglkxpXJYiAQsR:matrix.org 7 2 0 2 0 1 0 0 2
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 11 3 0 3 0 1 0 0 3
!sbqNtsANEFxdXwUXLr:irc.hackint.org 7 2 0 2 0 1 0 0 2
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!xCgOSOWzqdpoCKNpnP:matrix.org 7 2 0 2 0 1 0 0 2
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0
!HbvfEAdrvyIXsNDOLI:matrix.org 7 2 0 2 0 1 0 0 2
!lXqZcxFVXKAPayZdGl:matrix.org 7 2 0 2 0 1 0 0 2
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0
!XqBunHwQIXUiqCaoxq:matrix.org 8 9 0 5 0 0 0 1 5
!batlctBlslNTdSHoHB:irc.hackint.org 7 2 0 2 0 1 0 0 2
!uwGLwXtJlAYcxKzChl:matrix.org 7 2 0 2 0 1 0 0 2
!gVgKXXnxkQJJjJLzId:irc.hackint.org 7 2 0 2 0 1 0 0 2
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 7 2 0 2 0 1 0 0 2
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 7 2 0 2 0 1 0 0 2
!RyMksNyrKELkTxXqvb:irc.hackint.org 7 2 0 2 0 1 0 0 2
!QCWDezAlLwiDbwlxjH:irc.hackint.org 7 2 0 2 0 1 0 0 2
!PcRMDpMgUrARpPNGKq:matrix.org 7 2 0 2 0 1 0 0 2
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 7 2 0 2 0 1 0 0 2
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0
!drmkAYovWTAEksWYIT:irc.hackint.org 7 2 0 2 0 1 0 0 2
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!GgqMirLCzUBQrbwlbg:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!VYzsbIgRIvGuTjgfzy:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!ccJTTFjQIxEptZziVi:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!wVcgJmqQrLsNbqHaSP:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!gyXWdCXGiuXdRoUCti:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!FTxQUQNaHaldBhUuJY:irc.hackint.org 0 1 0 17 0 0 17 0 0 0 0 0 1 17 1 1 1 1 0 1 0 0 0 0 0 0 0 16 0 0 1
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 0 2 0 5 0 0 5 0 0 0 0 0 1 5 1 1 1 1 0 2 0 0 0 0 0 0 0 3 0 1 1
!vdiYurXiyDOISdvPFo:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!teSKuglkxpXJYiAQsR:matrix.org 0 1 0 2 0 0 2 0 0 1 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 0 1 0 3 0 0 3 0 0 0 0 0 1 3 1 1 1 1 0 1 0 0 0 0 0 0 0 2 0 0 1
!sbqNtsANEFxdXwUXLr:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!xCgOSOWzqdpoCKNpnP:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!HbvfEAdrvyIXsNDOLI:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!lXqZcxFVXKAPayZdGl:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!XqBunHwQIXUiqCaoxq:matrix.org 0 0 0 6 0 0 6 0 0 433 94 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 0
!batlctBlslNTdSHoHB:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!uwGLwXtJlAYcxKzChl:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!gVgKXXnxkQJJjJLzId:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!RyMksNyrKELkTxXqvb:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!QCWDezAlLwiDbwlxjH:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!PcRMDpMgUrARpPNGKq:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
!drmkAYovWTAEksWYIT:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1
Columns: 1142
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment