Go library for common functions needed by matrix servers. This library assumes Go 1.18+.
matrix-org / gomatrixserverlib Goto Github PK
View Code? Open in Web Editor NEWGo library for matrix federation.
License: Apache License 2.0
Go library for matrix federation.
License: Apache License 2.0
It might be a good idea to move all the matrix.org go projects to vanity URLs for imports. Not only would this mean a little less code (import "matrix.org/something"
instead of import "github.com/matrix-org/something"
), it also means that actually moving the code doesn't break the imports of everyone relying on them.
Having vanity URLs means that matrix.org would need to serve some html on the import paths, containing a meta tag that instructs go where to find the code. More details on that here.
We haven't spent time to give a holistic view of what this library looks like on GoDoc.
I wanted to know how "var object map[string]*json.RawMessage" is behaving,and also the nature of the Rawmessage?
I am actually trying to convert this behavior into JS.So,a little explanation of "func SignJson" is much appreciated
The documentation for json.Marshal
says that keys are automatically sorted, and it seems to do the right things for redundant sequences. Note that passing a struct to Marshal
will preserve the struct ordering, hence the use of maps here.
A function of:
func EncodeCanonicalJson(obj map[string]interface{}) ([]byte, error) {
return json.Marshal(obj)
}
appears to pass all the canonical JSON tests from the spec (where relevant):
func TestEncodeCanonicalJson(t *testing.T) {
var input map[string]interface{}
var expectedOutput []byte
var actualOutput []byte
input = map[string]interface{}{}
expectedOutput = []byte("{}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"one": 1,
"two": "Two",
}
expectedOutput = []byte("{\"one\":1,\"two\":\"Two\"}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"b": "2",
"a": "1",
}
expectedOutput = []byte("{\"a\":\"1\",\"b\":\"2\"}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"auth": map[string]interface{}{
"success": true,
"mxid": "@john.doe:example.com",
"profile": map[string]interface{}{
"display_name": "John Doe",
"three_pids": []map[string]interface{}{
{
"medium": "email",
"address": "[email protected]",
},
{
"medium": "msisdn",
"address": "123456789",
},
},
},
},
}
expectedOutput = []byte("{\"auth\":{\"mxid\":\"@john.doe:example.com\",\"profile\":{\"display_name\":\"John Doe\",\"three_pids\":[{\"address\":\"[email protected]\",\"medium\":\"email\"},{\"address\":\"123456789\",\"medium\":\"msisdn\"}]},\"success\":true}}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"a": "日本語",
}
expectedOutput = []byte("{\"a\":\"日本語\"}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"本": 2,
"日": 1,
}
expectedOutput = []byte("{\"日\":1,\"本\":2}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"a": "\u65E5",
}
expectedOutput = []byte("{\"a\":\"日\"}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
input = map[string]interface{}{
"a": nil,
}
expectedOutput = []byte("{\"a\":null}")
actualOutput, _ = EncodeCanonicalJson(input)
compareBytes(expectedOutput, actualOutput, t)
}
func compareBytes(expected []byte, actual []byte, t *testing.T) {
if len(expected) != len(actual) {
t.Errorf("Mismatched length: %d != %d", len(actual), len(expected))
return
}
for i := range expected {
e := expected[i]
a := actual[i]
if e != a {
t.Errorf("Expected %b but got %b at index %d", e, a, i)
return
}
}
}
Hii,I want to know the byteorder after MarshalJSON is implemented.
Also, if marshalling in gomatrixserverlib does depend on byteorder?
Depth should be max(previous_events.depth) + 1
, otherwise we could suffer from the same attacks that Synapse received recently where the depth was escalated to the maximum supported by postgres.
Rather than trusting federated depth as Synapse currently does, the current proposal is to make a best guess estimate of what the depth should be on arrival which is tracked in the proposal document linked:
https://docs.google.com/document/d/16ofbjluy8ZKYL6nt7WLHG4GqSodJUWLUxHhI6xPEjr4
Describe the bug
A pop up immediately shows after trying to join a room, showing that one of the user's (different each time) user part contains invalid characters
To Reproduce
Steps to reproduce the behavior:
dendrite.matrix.org
account#dendrite:matrix.org
Expected behavior
User joins the room successfully.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Only joining some rooms fail with error.
matrix-org/complement#367 for MSC3787 has landed on my plate. I also have no idea what I'm doing, but maybe I can work it out.
As Kegan details in matrix-org/complement#367 (review), someone needs to teach gomatrixserverlib about the new room version. But there isn't actually anyone pushing for this, so you'll have to make do with me.
The status today:
join_rule
of knock
. Any room with this join rule could be knocked upon.join_rule
of restricted
. Any room with this join rule could be joined based on membership of a space.This new room version introduces a new join_rule
for a room called knock_restricted
. Rooms with this join_rule:
We need a new entry in the roomVersionMeta
map.
The rest TBD.
For example in scalar we are seeing:
scalar-live.log-20200326-06:Mar 25 19:44:57 corus docker-scalar-live[690]: time="2020-03-25T19:44:57Z" level=info msg="Failed to LookupUserInfo" error="Get matrix://softzone.ca/_matrix/federation/v1/openid/userinfo?access_token=: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" server_name=softzone.ca
scalar-live.log-20200326-06:Mar 25 19:46:30 corus docker-scalar-live[690]: time="2020-03-25T19:46:30Z" level=info msg="Outgoing request" out.req.ID=4pStqjqRu3DJ out.req.method=GET out.req.uri="matrix://softzone.ca/_matrix/federation/v1/openid/userinfo?access_token=" req.id=m4CfY42GWiYw req.method=POST req.path=/register
scalar-live.log-20200326-06:Mar 25 19:47:00 corus docker-scalar-live[690]: time="2020-03-25T19:47:00Z" level=warning msg="Error sending request to https://softzone.ca:8448/_matrix/federation/v1/openid/userinfo?access_token=: net/http: request canceled while waiting for connection" out.req.ID=4pStqjqRu3DJ out.req.method=GET out.req.uri="matrix://softzone.ca/_matrix/federation/v1/openid/userinfo?access_token=" req.id=m4CfY42GWiYw req.method=POST req.path=/register
The well known information is correct http://softzone.ca/.well-known/matrix/server, so unsure why this is failing.
I'm trying to join a public channel on matrix.org server using my sefhosted server running dendrite. Joining fails with the following error:
level=warning msg="Failed to request keys from fetcher" context=missing error="gomatrixserverlib: unable to lookup server keys: contents=[] msg=Failed to POST JSON (hostname \"matrix.org\" path \"/_matrix/key/v2/query\"): code=520 wrapped=" fetcher="perspective server matrix.org
In particular, stateDefaultLevel
should be 50 if the key is missing but there is a power level event, but 0 if there isn't a power level event:
gomatrixserverlib/eventcontent.go
Line 286 in 2e9caea
This issue tracks all issues we've found in the spec where the spec is:
If people are feeling particularly inclined, please PR on https://github.com/matrix-org/matrix-doc/pulls these issues and xref them here so we know it's done. Thanks!
My goal is to easily dump the events and understand what I am working with in Dendrite -> syncapi/storage/shared/syncserver.go#L889
Is there way to use the JSON marshal/unmarshal stuff?
Can we expose Event.eventJSON
for easy debug logging?
Brought up while working on matrix-org/dendrite#1671 (comment)
✅ Decent but a lot of boilerplate to log and wish it was pretty-printed
type somematrixevent struct {
event_id, sender, eventType, origin_server_ts, content string
}
events := make([]somematrixevent, len(recentStreamEvents))
for i, v := range recentStreamEvents {
events[i] = somematrixevent{
event_id: v.HeaderedEvent.Event.EventID(),
sender: v.HeaderedEvent.Event.Sender(),
eventType: v.HeaderedEvent.Event.Type(),
origin_server_ts: strconv.FormatUint(uint64(v.HeaderedEvent.Event.OriginServerTS()), 10),
content: string(v.HeaderedEvent.Event.Content()),
}
}
logrus.WithFields(logrus.Fields{
"joinEventIndex": joinEventIndex,
"leaveEventIndex": leaveEventIndex,
"recentStreamEvents": fmt.Sprintf("%+v", events),
}).Info("cutting down the events")
=>
cutting down the events" func="getLeaveResponseForCompleteSync\n\t" file=" [github.com/matrix-org/dendrite/syncapi/storage/shared/syncserver.go:1018]" joinEventIndex=5 leaveEventIndex=8 recentStreamEvents="[{event_id:$5EyRm7sTmCsCDzW-NHzDajc8-U20tbEaHohFbu7rkMQ sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.create origin_server_ts:1609458864776 content:{\"creator\":\"@anon-20201231_235419-10:localhost:8800\",\"room_version\":\"6\"}} {event_id:$a2qdTYHIyKH0itEWItEoQiSbfKmsqa6kBiPBhubP-p4 sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.member origin_server_ts:1609458864776 content:{\"displayname\":\"anon-20201231_235419-10\",\"membership\":\"join\"}} {event_id:$CnDIfdjW2Vuu-cDtmNQbtLY9R294LOCi-cUy1_5HEZ4 sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.power_levels origin_server_ts:1609458864776 content:{\"ban\":50,\"events\":{\"m.room.aliases\":0,\"m.room.avatar\":50,\"m.room.canonical_alias\":50,\"m.room.history_visibility\":100,\"m.room.name\":50,\"m.room.power_levels\":100},\"events_default\":0,\"invite\":0,\"kick\":50,\"notifications\":{\"room\":50},\"redact\":50,\"state_default\":50,\"users\":{\"@anon-20201231_235419-10:localhost:8800\":100},\"users_default\":0}} {event_id:$rKjPjtD1ObPuLL-Z7PP1htBbwuE4MPeSyjqUMKJcS8U sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.join_rules origin_server_ts:1609458864776 content:{\"join_rule\":\"public\"}} {event_id:$6HbKHVPXuClLnLbvNdnAidzHGhOL74k5di4czIDNiro sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.history_visibility origin_server_ts:1609458864776 content:{\"history_visibility\":\"shared\"}} {event_id:$J3xJGBFneV3k0giKgCmWPxNO_Cm52gANiPkT_mz4RQ0 sender:@anon-20201231_235419-11:localhost:8800 eventType:m.room.member origin_server_ts:1609458864944 content:{\"avatar_url\":\"\",\"displayname\":\"anon-20201231_235419-11\",\"membership\":\"join\"}} {event_id:$8VZX91LDShyOWprozWh4uJjG8eQWJV2m9hcNCLNYTks sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.message origin_server_ts:1609458865000 content:{\"body\":\"before\",\"msgtype\":\"m.text\"}} {event_id:$YaStqa5HW3vZkdMQfIuaPbpU1tznO6QlD_Sjuu3thsA sender:@anon-20201231_235419-10:localhost:8800 eventType:a.madeup.test.state origin_server_ts:1609458865016 content:{\"my_key\":\"before\"}} {event_id:$GTa-PIx7m07rKAKYD2uywL5V-D17x8jjLABCKUPvyPQ sender:@anon-20201231_235419-11:localhost:8800 eventType:m.room.member origin_server_ts:1609458865041 content:{\"membership\":\"leave\"}} {event_id:$JOLvI85kLAUmSh2p380f_WepKvVGXhZpmyC0f6Rbnd0 sender:@anon-20201231_235419-10:localhost:8800 eventType:m.room.message origin_server_ts:1609458865062 content:{\"body\":\"after\",\"msgtype\":\"m.text\"}} {event_id:$WEzgi9nhpUbBa5QeaEicagbMQ9uQSfeL3uv4yoSXU4s sender:@anon-20201231_235419-10:localhost:8800 eventType:a.madeup.test.state origin_server_ts:1609458865091 content:{\"my_key\":\"after\"}}]"
❌ Not possible since eventJSON
is not exported (lowercase)
events := make([]string, len(recentStreamEvents))
for i, v := range recentStreamEvents {
events[i] = string(v.HeaderedEvent.Event.eventJSON)
}
logrus.WithFields(logrus.Fields{
"joinEventIndex": joinEventIndex,
"leaveEventIndex": leaveEventIndex,
"recentStreamEvents": fmt.Sprintf("%+v", events),
}).Info("cutting down the events")
Simple easy JSON string
=>
...
✖️ A bunch of unreadable byte arrays mixed in with some information
events := make([]gomatrixserverlib.Event, len(recentStreamEvents))
for i, v := range recentStreamEvents {
events[i] = *v.HeaderedEvent.Event
}
logrus.WithFields(logrus.Fields{
"joinEventIndex": joinEventIndex,
"leaveEventIndex": leaveEventIndex,
"recentStreamEvents": fmt.Sprintf("%+v", events),
}).Info("cutting down the events")
=>
cutting down the events" func="getLeaveResponseForCompleteSync\n\t" file=" [github.com/matrix-org/dendrite/syncapi/storage/shared/syncserver.go:1005]" joinEventIndex=5 leaveEventIndex=8 recentStreamEvents="[{redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 93 44 34 99 111 110 116 101 110 116 34 58 123 34 99 114 101 97 116 111 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 111 111 109 95 118 101 114 115 105 111 110 34 58 34 54 34 125 44 34 100 101 112 116 104 34 58 49 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 104 120 111 102 110 80 109 98 109 82 73 99 118 83 73 68 101 65 49 75 80 98 54 81 102 74 118 43 111 79 112 54 77 80 80 121 65 65 67 86 73 109 89 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 48 53 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 120 97 86 75 100 78 78 110 78 82 121 48 82 107 79 122 120 117 102 87 110 87 118 71 112 66 83 75 81 85 43 47 47 69 78 115 47 51 119 106 107 106 70 66 55 88 100 80 87 106 99 72 82 78 113 112 109 87 119 78 52 53 69 117 76 78 81 111 50 68 120 49 121 69 110 68 84 120 102 97 80 109 111 109 68 65 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 99 114 101 97 116 101 34 125] fields:{eventFields:{EventID:$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.create StateKey:0xc000077770 Content:[123 34 99 114 101 97 116 111 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 111 111 109 95 118 101 114 115 105 111 110 34 58 34 54 34 125] Redacts: Depth:1 Unsigned:[] OriginServerTS:1609457772052 Origin:localhost:8800} PrevEvents:[] AuthEvents:[]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125 44 34 100 101 112 116 104 34 58 50 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 51 57 86 67 47 65 120 117 99 103 101 57 106 109 78 84 50 108 57 105 120 98 98 52 116 105 89 74 80 48 108 116 56 53 90 104 100 66 73 115 71 85 89 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 48 53 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 98 68 90 49 76 105 76 113 107 68 54 48 75 67 43 50 103 75 79 99 107 56 97 65 121 102 122 104 85 121 47 116 117 99 120 90 65 77 55 57 84 83 119 119 80 57 99 121 107 43 78 75 88 108 71 69 85 85 82 84 90 89 72 50 102 74 80 48 103 90 82 77 56 66 53 108 119 52 66 70 105 117 57 83 66 65 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 109 101 109 98 101 114 34 125] fields:{eventFields:{EventID:$J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.member StateKey:0xc000077690 Content:[123 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125] Redacts: Depth:2 Unsigned:[] OriginServerTS:1609457772052 Origin:localhost:8800} PrevEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 98 97 110 34 58 53 48 44 34 101 118 101 110 116 115 34 58 123 34 109 46 114 111 111 109 46 97 108 105 97 115 101 115 34 58 48 44 34 109 46 114 111 111 109 46 97 118 97 116 97 114 34 58 53 48 44 34 109 46 114 111 111 109 46 99 97 110 111 110 105 99 97 108 95 97 108 105 97 115 34 58 53 48 44 34 109 46 114 111 111 109 46 104 105 115 116 111 114 121 95 118 105 115 105 98 105 108 105 116 121 34 58 49 48 48 44 34 109 46 114 111 111 109 46 110 97 109 101 34 58 53 48 44 34 109 46 114 111 111 109 46 112 111 119 101 114 95 108 101 118 101 108 115 34 58 49 48 48 125 44 34 101 118 101 110 116 115 95 100 101 102 97 117 108 116 34 58 48 44 34 105 110 118 105 116 101 34 58 48 44 34 107 105 99 107 34 58 53 48 44 34 110 111 116 105 102 105 99 97 116 105 111 110 115 34 58 123 34 114 111 111 109 34 58 53 48 125 44 34 114 101 100 97 99 116 34 58 53 48 44 34 115 116 97 116 101 95 100 101 102 97 117 108 116 34 58 53 48 44 34 117 115 101 114 115 34 58 123 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 49 48 48 125 44 34 117 115 101 114 115 95 100 101 102 97 117 108 116 34 58 48 125 44 34 100 101 112 116 104 34 58 51 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 49 89 53 88 111 78 52 99 99 120 50 55 122 87 50 48 118 104 57 52 122 73 52 81 107 103 56 84 57 76 48 83 53 101 89 47 72 49 43 97 113 107 115 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 48 53 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 86 66 109 106 75 65 112 72 79 67 79 108 102 87 115 74 56 70 109 103 103 54 85 54 79 73 50 79 81 70 100 117 47 116 53 73 75 80 101 101 113 108 99 88 100 103 57 49 57 43 79 107 107 66 76 75 102 80 79 99 120 84 54 77 53 88 71 49 104 84 79 100 99 103 76 56 52 75 82 115 105 121 112 112 66 119 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 112 111 119 101 114 95 108 101 118 101 108 115 34 125] fields:{eventFields:{EventID:$DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.power_levels StateKey:0xc0000775d0 Content:[123 34 98 97 110 34 58 53 48 44 34 101 118 101 110 116 115 34 58 123 34 109 46 114 111 111 109 46 97 108 105 97 115 101 115 34 58 48 44 34 109 46 114 111 111 109 46 97 118 97 116 97 114 34 58 53 48 44 34 109 46 114 111 111 109 46 99 97 110 111 110 105 99 97 108 95 97 108 105 97 115 34 58 53 48 44 34 109 46 114 111 111 109 46 104 105 115 116 111 114 121 95 118 105 115 105 98 105 108 105 116 121 34 58 49 48 48 44 34 109 46 114 111 111 109 46 110 97 109 101 34 58 53 48 44 34 109 46 114 111 111 109 46 112 111 119 101 114 95 108 101 118 101 108 115 34 58 49 48 48 125 44 34 101 118 101 110 116 115 95 100 101 102 97 117 108 116 34 58 48 44 34 105 110 118 105 116 101 34 58 48 44 34 107 105 99 107 34 58 53 48 44 34 110 111 116 105 102 105 99 97 116 105 111 110 115 34 58 123 34 114 111 111 109 34 58 53 48 125 44 34 114 101 100 97 99 116 34 58 53 48 44 34 115 116 97 116 101 95 100 101 102 97 117 108 116 34 58 53 48 44 34 117 115 101 114 115 34 58 123 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 49 48 48 125 44 34 117 115 101 114 115 95 100 101 102 97 117 108 116 34 58 48 125] Redacts: Depth:3 Unsigned:[] OriginServerTS:1609457772052 Origin:localhost:8800} PrevEvents:[$J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 106 111 105 110 95 114 117 108 101 34 58 34 112 117 98 108 105 99 34 125 44 34 100 101 112 116 104 34 58 52 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 86 105 71 78 82 65 110 72 86 71 79 111 101 99 57 78 118 106 55 99 100 73 83 73 108 97 65 79 75 68 65 103 79 90 57 43 53 101 120 75 111 107 48 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 48 53 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 118 121 115 68 66 89 79 117 101 55 74 70 70 49 112 82 117 76 77 118 87 109 43 74 106 114 56 43 71 99 100 53 103 55 90 102 103 68 56 79 81 56 56 67 52 70 53 65 56 108 80 115 113 99 82 56 65 116 114 53 50 108 75 50 65 115 110 56 77 73 56 103 76 119 103 78 84 113 50 102 76 111 71 78 66 103 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 106 111 105 110 95 114 117 108 101 115 34 125] fields:{eventFields:{EventID:$9SftrMCjDofI9F1-RcLKkk71KsLIcSwrauHvLD4iHgE RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.join_rules StateKey:0xc000077540 Content:[123 34 106 111 105 110 95 114 117 108 101 34 58 34 112 117 98 108 105 99 34 125] Redacts: Depth:4 Unsigned:[] OriginServerTS:1609457772052 Origin:localhost:8800} PrevEvents:[$DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 104 105 115 116 111 114 121 95 118 105 115 105 98 105 108 105 116 121 34 58 34 115 104 97 114 101 100 34 125 44 34 100 101 112 116 104 34 58 53 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 53 79 78 57 112 80 90 117 98 98 115 80 74 112 119 54 118 115 75 98 99 97 50 119 83 74 118 82 97 98 114 66 110 105 111 122 69 99 98 84 55 78 99 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 48 53 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 57 83 102 116 114 77 67 106 68 111 102 73 57 70 49 45 82 99 76 75 107 107 55 49 75 115 76 73 99 83 119 114 97 117 72 118 76 68 52 105 72 103 69 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 103 78 101 71 118 86 53 66 71 79 70 107 100 57 119 53 55 78 118 55 52 114 97 110 116 119 86 77 114 72 87 99 87 70 87 90 99 120 86 65 97 106 111 99 117 50 113 66 98 75 49 105 100 101 105 67 104 47 43 68 99 48 108 77 68 83 121 106 68 121 112 82 67 67 87 51 67 49 84 72 54 98 75 100 68 65 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 104 105 115 116 111 114 121 95 118 105 115 105 98 105 108 105 116 121 34 125] fields:{eventFields:{EventID:$7-ZPci-eInZu4GEqTkJfJcvsoNxCzA3pBnGpMTTKN_o RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.history_visibility StateKey:0xc0000774b0 Content:[123 34 104 105 115 116 111 114 121 95 118 105 115 105 98 105 108 105 116 121 34 58 34 115 104 97 114 101 100 34 125] Redacts: Depth:5 Unsigned:[] OriginServerTS:1609457772052 Origin:localhost:8800} PrevEvents:[$9SftrMCjDofI9F1-RcLKkk71KsLIcSwrauHvLD4iHgE] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 57 83 102 116 114 77 67 106 68 111 102 73 57 70 49 45 82 99 76 75 107 107 55 49 75 115 76 73 99 83 119 114 97 117 72 118 76 68 52 105 72 103 69 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 97 118 97 116 97 114 95 117 114 108 34 58 34 34 44 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125 44 34 100 101 112 116 104 34 58 54 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 81 104 43 43 70 105 75 122 99 75 69 118 82 115 49 82 73 66 99 114 47 118 83 66 69 87 43 104 97 82 98 80 117 69 82 87 68 68 80 47 116 90 107 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 50 50 52 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 55 45 90 80 99 105 45 101 73 110 90 117 52 71 69 113 84 107 74 102 74 99 118 115 111 78 120 67 122 65 51 112 66 110 71 112 77 84 84 75 78 95 111 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 107 54 51 82 118 98 78 109 106 69 97 113 47 65 97 100 111 101 79 70 68 119 100 105 52 73 110 109 48 86 82 104 71 74 65 97 84 106 102 119 111 110 50 105 68 90 116 56 102 78 104 69 74 90 90 109 99 118 121 106 74 84 87 78 84 121 50 51 73 71 56 51 49 121 77 48 49 47 106 85 66 52 79 114 67 65 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 109 101 109 98 101 114 34 44 34 117 110 115 105 103 110 101 100 34 58 123 125 125] fields:{eventFields:{EventID:$zIDGPvYUaWCnmfswnsoncyFlEFHOtZ91vEDXKbnESoA RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-11:localhost:8800 Type:m.room.member StateKey:0xc000077400 Content:[123 34 97 118 97 116 97 114 95 117 114 108 34 58 34 34 44 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125] Redacts: Depth:6 Unsigned:[123 125] OriginServerTS:1609457772224 Origin:localhost:8800} PrevEvents:[$7-ZPci-eInZu4GEqTkJfJcvsoNxCzA3pBnGpMTTKN_o] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $9SftrMCjDofI9F1-RcLKkk71KsLIcSwrauHvLD4iHgE $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 98 111 100 121 34 58 34 98 101 102 111 114 101 34 44 34 109 115 103 116 121 112 101 34 58 34 109 46 116 101 120 116 34 125 44 34 100 101 112 116 104 34 58 55 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 110 87 78 110 69 72 73 121 120 81 71 109 109 52 89 87 67 121 48 90 116 108 86 118 77 84 110 109 116 83 66 122 122 74 120 48 79 97 116 52 82 90 73 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 50 57 50 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 122 73 68 71 80 118 89 85 97 87 67 110 109 102 115 119 110 115 111 110 99 121 70 108 69 70 72 79 116 90 57 49 118 69 68 88 75 98 110 69 83 111 65 34 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 104 83 57 116 107 118 81 52 57 105 48 49 82 48 107 112 109 52 121 89 112 66 49 54 51 88 99 88 86 78 79 68 85 110 54 102 43 121 67 101 84 109 66 89 122 48 116 117 102 68 100 52 113 76 110 56 87 80 110 104 110 74 56 120 86 50 56 105 70 70 90 85 72 53 104 109 71 121 79 77 100 122 56 74 65 81 34 125 125 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 109 101 115 115 97 103 101 34 125] fields:{eventFields:{EventID:$TdoSYA0OvaQUylQ6hto_bZ3dYT3lBuVt7MGyz2PzTx4 RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.message StateKey:<nil> Content:[123 34 98 111 100 121 34 58 34 98 101 102 111 114 101 34 44 34 109 115 103 116 121 112 101 34 58 34 109 46 116 101 120 116 34 125] Redacts: Depth:7 Unsigned:[] OriginServerTS:1609457772292 Origin:localhost:8800} PrevEvents:[$zIDGPvYUaWCnmfswnsoncyFlEFHOtZ91vEDXKbnESoA] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 109 121 95 107 101 121 34 58 34 98 101 102 111 114 101 34 125 44 34 100 101 112 116 104 34 58 56 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 107 82 50 56 65 82 71 70 82 106 107 56 79 48 106 105 47 65 106 120 56 109 78 66 56 115 118 88 80 89 71 119 51 47 83 86 110 66 87 109 48 103 115 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 51 49 53 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 84 100 111 83 89 65 48 79 118 97 81 85 121 108 81 54 104 116 111 95 98 90 51 100 89 84 51 108 66 117 86 116 55 77 71 121 122 50 80 122 84 120 52 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 90 51 99 121 118 68 54 87 47 112 83 87 74 108 50 57 77 65 50 69 100 80 49 122 65 57 110 71 72 100 114 54 84 78 55 65 78 118 88 88 81 107 77 80 88 107 49 100 107 76 84 116 120 80 71 43 86 85 77 72 51 106 103 114 110 105 70 88 121 73 56 56 114 101 84 113 110 115 119 100 105 80 47 101 65 81 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 97 46 109 97 100 101 117 112 46 116 101 115 116 46 115 116 97 116 101 34 125] fields:{eventFields:{EventID:$7wZOucwm6IVwA-agMnlPmQl51Vz4SgWGQVCIa0r5NMU RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:a.madeup.test.state StateKey:0xc000077290 Content:[123 34 109 121 95 107 101 121 34 58 34 98 101 102 111 114 101 34 125] Redacts: Depth:8 Unsigned:[] OriginServerTS:1609457772315 Origin:localhost:8800} PrevEvents:[$TdoSYA0OvaQUylQ6hto_bZ3dYT3lBuVt7MGyz2PzTx4] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 122 73 68 71 80 118 89 85 97 87 67 110 109 102 115 119 110 115 111 110 99 121 70 108 69 70 72 79 116 90 57 49 118 69 68 88 75 98 110 69 83 111 65 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 109 101 109 98 101 114 115 104 105 112 34 58 34 108 101 97 118 101 34 125 44 34 100 101 112 116 104 34 58 57 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 117 57 111 118 117 76 49 115 83 85 112 74 112 80 82 108 101 74 121 114 101 54 107 71 49 85 84 49 88 89 56 111 74 113 109 117 109 49 48 109 106 72 107 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 51 52 54 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 55 119 90 79 117 99 119 109 54 73 86 119 65 45 97 103 77 110 108 80 109 81 108 53 49 86 122 52 83 103 87 71 81 86 67 73 97 48 114 53 78 77 85 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 98 97 118 109 57 85 105 69 112 69 100 105 49 99 108 83 52 89 105 84 99 100 74 82 117 71 120 90 100 54 102 82 78 52 80 102 75 80 120 66 98 118 119 78 57 119 54 68 48 120 81 79 69 82 55 56 49 47 48 51 120 74 70 120 80 120 117 85 120 70 103 47 97 75 113 102 101 108 103 71 48 79 83 43 65 119 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 109 101 109 98 101 114 34 44 34 117 110 115 105 103 110 101 100 34 58 123 34 112 114 101 118 95 99 111 110 116 101 110 116 34 58 123 34 97 118 97 116 97 114 95 117 114 108 34 58 34 34 44 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125 44 34 112 114 101 118 95 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 101 112 108 97 99 101 115 95 115 116 97 116 101 34 58 34 36 122 73 68 71 80 118 89 85 97 87 67 110 109 102 115 119 110 115 111 110 99 121 70 108 69 70 72 79 116 90 57 49 118 69 68 88 75 98 110 69 83 111 65 34 125 125] fields:{eventFields:{EventID:$hVuiKknqF9hW-8vV3gcXTv9wRlKRZojrAa9oBm8EFcg RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-11:localhost:8800 Type:m.room.member StateKey:0xc0000771e0 Content:[123 34 109 101 109 98 101 114 115 104 105 112 34 58 34 108 101 97 118 101 34 125] Redacts: Depth:9 Unsigned:[123 34 112 114 101 118 95 99 111 110 116 101 110 116 34 58 123 34 97 118 97 116 97 114 95 117 114 108 34 58 34 34 44 34 100 105 115 112 108 97 121 110 97 109 101 34 58 34 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 34 44 34 109 101 109 98 101 114 115 104 105 112 34 58 34 106 111 105 110 34 125 44 34 112 114 101 118 95 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 49 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 101 112 108 97 99 101 115 95 115 116 97 116 101 34 58 34 36 122 73 68 71 80 118 89 85 97 87 67 110 109 102 115 119 110 115 111 110 99 121 70 108 69 70 72 79 116 90 57 49 118 69 68 88 75 98 110 69 83 111 65 34 125] OriginServerTS:1609457772346 Origin:localhost:8800} PrevEvents:[$7wZOucwm6IVwA-agMnlPmQl51Vz4SgWGQVCIa0r5NMU] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $zIDGPvYUaWCnmfswnsoncyFlEFHOtZ91vEDXKbnESoA]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 98 111 100 121 34 58 34 97 102 116 101 114 34 44 34 109 115 103 116 121 112 101 34 58 34 109 46 116 101 120 116 34 125 44 34 100 101 112 116 104 34 58 49 48 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 68 109 122 109 83 102 90 115 82 98 57 115 105 110 82 100 111 108 103 65 101 120 106 50 118 47 87 119 55 67 90 65 77 102 115 81 103 52 73 51 122 82 48 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 51 54 57 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 104 86 117 105 75 107 110 113 70 57 104 87 45 56 118 86 51 103 99 88 84 118 57 119 82 108 75 82 90 111 106 114 65 97 57 111 66 109 56 69 70 99 103 34 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 68 112 106 77 98 102 101 111 83 88 48 70 56 99 98 69 75 105 108 109 43 54 83 52 80 73 78 103 47 66 110 121 97 66 51 70 50 56 105 113 52 115 122 90 80 106 55 69 98 75 120 117 78 73 67 73 88 71 82 90 66 84 81 97 49 81 119 83 87 85 77 119 57 76 53 121 65 73 49 101 103 50 43 88 66 65 34 125 125 44 34 116 121 112 101 34 58 34 109 46 114 111 111 109 46 109 101 115 115 97 103 101 34 125] fields:{eventFields:{EventID:$49JUbY1WRoaCGQXWlCCGBHD-S1eRSvqGRfOUEe3OXvc RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:m.room.message StateKey:<nil> Content:[123 34 98 111 100 121 34 58 34 97 102 116 101 114 34 44 34 109 115 103 116 121 112 101 34 58 34 109 46 116 101 120 116 34 125] Redacts: Depth:10 Unsigned:[] OriginServerTS:1609457772369 Origin:localhost:8800} PrevEvents:[$hVuiKknqF9hW-8vV3gcXTv9wRlKRZojrAa9oBm8EFcg] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6} {redacted:false eventJSON:[123 34 97 117 116 104 95 101 118 101 110 116 115 34 58 91 34 36 88 71 76 99 57 68 108 83 110 73 78 65 74 119 87 99 77 78 100 49 54 66 69 68 69 48 102 89 112 52 89 57 72 107 118 78 113 108 67 101 98 67 77 34 44 34 36 68 72 107 115 71 100 89 87 45 68 115 110 99 45 74 109 102 56 66 66 118 87 86 52 71 103 109 70 105 85 87 50 88 49 49 48 99 79 55 86 102 87 99 34 44 34 36 74 55 101 120 70 55 73 85 101 51 69 69 53 87 112 84 116 100 80 89 83 110 122 122 56 107 119 115 73 109 107 80 79 49 102 68 104 115 65 70 111 113 69 34 93 44 34 99 111 110 116 101 110 116 34 58 123 34 109 121 95 107 101 121 34 58 34 97 102 116 101 114 34 125 44 34 100 101 112 116 104 34 58 49 49 44 34 104 97 115 104 101 115 34 58 123 34 115 104 97 50 53 54 34 58 34 82 82 71 88 73 113 103 117 99 54 48 86 111 103 106 89 85 84 120 71 121 75 107 89 117 121 88 109 50 102 67 115 101 120 81 99 52 53 54 70 81 83 56 34 125 44 34 111 114 105 103 105 110 34 58 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 111 114 105 103 105 110 95 115 101 114 118 101 114 95 116 115 34 58 49 54 48 57 52 53 55 55 55 50 51 57 49 44 34 112 114 101 118 95 101 118 101 110 116 115 34 58 91 34 36 52 57 74 85 98 89 49 87 82 111 97 67 71 81 88 87 108 67 67 71 66 72 68 45 83 49 101 82 83 118 113 71 82 102 79 85 69 101 51 79 88 118 99 34 93 44 34 112 114 101 118 95 115 116 97 116 101 34 58 91 93 44 34 114 111 111 109 95 105 100 34 58 34 33 49 49 85 84 115 73 110 113 104 78 110 114 51 53 117 86 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 115 105 103 110 97 116 117 114 101 115 34 58 123 34 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 58 123 34 101 100 50 53 53 49 57 58 78 84 76 116 106 112 34 58 34 52 83 71 74 109 100 115 106 120 68 72 69 108 67 65 68 89 107 86 54 102 83 117 83 79 55 120 111 81 54 101 98 121 121 122 103 81 106 77 101 52 106 48 78 106 109 102 116 84 106 105 68 101 112 57 97 51 74 122 99 56 84 106 47 80 113 122 103 104 101 97 67 98 68 102 117 70 77 67 121 109 55 53 80 66 81 34 125 125 44 34 115 116 97 116 101 95 107 101 121 34 58 34 34 44 34 116 121 112 101 34 58 34 97 46 109 97 100 101 117 112 46 116 101 115 116 46 115 116 97 116 101 34 44 34 117 110 115 105 103 110 101 100 34 58 123 34 112 114 101 118 95 99 111 110 116 101 110 116 34 58 123 34 109 121 95 107 101 121 34 58 34 98 101 102 111 114 101 34 125 44 34 112 114 101 118 95 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 101 112 108 97 99 101 115 95 115 116 97 116 101 34 58 34 36 55 119 90 79 117 99 119 109 54 73 86 119 65 45 97 103 77 110 108 80 109 81 108 53 49 86 122 52 83 103 87 71 81 86 67 73 97 48 114 53 78 77 85 34 125 125] fields:{eventFields:{EventID:$4ElzALAU-wfTgBE1ErOdfWSifKpZCgpt8jfUgcu2q-E RoomID:!11UTsInqhNnr35uV:localhost:8800 Sender:@anon-20201231_233606-10:localhost:8800 Type:a.madeup.test.state StateKey:0xc000077000 Content:[123 34 109 121 95 107 101 121 34 58 34 97 102 116 101 114 34 125] Redacts: Depth:11 Unsigned:[123 34 112 114 101 118 95 99 111 110 116 101 110 116 34 58 123 34 109 121 95 107 101 121 34 58 34 98 101 102 111 114 101 34 125 44 34 112 114 101 118 95 115 101 110 100 101 114 34 58 34 64 97 110 111 110 45 50 48 50 48 49 50 51 49 95 50 51 51 54 48 54 45 49 48 58 108 111 99 97 108 104 111 115 116 58 56 56 48 48 34 44 34 114 101 112 108 97 99 101 115 95 115 116 97 116 101 34 58 34 36 55 119 90 79 117 99 119 109 54 73 86 119 65 45 97 103 77 110 108 80 109 81 108 53 49 86 122 52 83 103 87 71 81 86 67 73 97 48 114 53 78 77 85 34 125] OriginServerTS:1609457772391 Origin:localhost:8800} PrevEvents:[$49JUbY1WRoaCGQXWlCCGBHD-S1eRSvqGRfOUEe3OXvc] AuthEvents:[$XGLc9DlSnINAJwWcMNd16BEDE0fYp4Y9HkvNqlCebCM $DHksGdYW-Dsnc-Jmf8BBvWV4GgmFiUW2X110cO7VfWc $J7exF7IUe3EE5WpTtdPYSnzz8kwsImkPO1fDhsAFoqE]} roomVersion:6}]"
✖️ Still not readable with all of the byte streams
logrus.Info(spew.Sdump(recentStreamEvents))
=>
([]types.StreamEvent) (len=11 cap=16) {\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691d40)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000118b80)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=543 cap=576) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 5d 2c 22 63 6f 6e 74 65 6e 74 22 3a 7b 22 63 72 |],\"content\":{\"cr|\n 00000020 65 61 74 6f 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 |eator\":\"@anon-20|\n 00000030 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 30 |201231_234927-10|\n 00000040 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 |:localhost:8800\"|\n 00000050 2c 22 72 6f 6f 6d 5f 76 65 72 73 69 6f 6e 22 3a |,\"room_version\":|\n 00000060 22 36 22 7d 2c 22 64 65 70 74 68 22 3a 31 2c 22 |\"6\"},\"depth\":1,\"|\n 00000070 68 61 73 68 65 73 22 3a 7b 22 73 68 61 32 35 36 |hashes\":{\"sha256|\n 00000080 22 3a 22 2b 4a 64 36 69 74 58 75 73 52 65 52 42 |\":\"+Jd6itXusReRB|\n 00000090 65 49 49 78 53 71 68 43 6c 50 78 52 4c 37 71 52 |eIIxSqhClPxRL7qR|\n 000000a0 34 44 75 49 47 35 50 64 5a 38 48 6c 68 4d 22 7d |4DuIG5PdZ8HlhM\"}|\n 000000b0 2c 22 6f 72 69 67 69 6e 22 3a 22 6c 6f 63 61 6c |,\"origin\":\"local|\n 000000c0 68 6f 73 74 3a 38 38 30 30 22 2c 22 6f 72 69 67 |host:8800\",\"orig|\n 000000d0 69 6e 5f 73 65 72 76 65 72 5f 74 73 22 3a 31 36 |in_server_ts\":16|\n 000000e0 30 39 34 35 38 35 37 32 34 30 31 2c 22 70 72 65 |09458572401,\"pre|\n 000000f0 76 5f 65 76 65 6e 74 73 22 3a 5b 5d 2c 22 70 72 |v_events\":[],\"pr|\n 00000100 65 76 5f 73 74 61 74 65 22 3a 5b 5d 2c 22 72 6f |ev_state\":[],\"ro|\n 00000110 6f 6d 5f 69 64 22 3a 22 21 36 4e 73 5a 4f 66 72 |om_id\":\"!6NsZOfr|\n 00000120 44 72 45 75 58 52 57 65 73 3a 6c 6f 63 61 6c 68 |DrEuXRWes:localh|\n 00000130 6f 73 74 3a 38 38 30 30 22 2c 22 73 65 6e 64 65 |ost:8800\",\"sende|\n 00000140 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 32 |r\":\"@anon-202012|\n 00000150 33 31 5f 32 33 34 39 32 37 2d 31 30 3a 6c 6f 63 |31_234927-10:loc|\n 00000160 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 69 |alhost:8800\",\"si|\n 00000170 67 6e 61 74 75 72 65 73 22 3a 7b 22 6c 6f 63 61 |gnatures\":{\"loca|\n 00000180 6c 68 6f 73 74 3a 38 38 30 30 22 3a 7b 22 65 64 |lhost:8800\":{\"ed|\n 00000190 32 35 35 31 39 3a 4e 54 4c 74 6a 70 22 3a 22 34 |25519:NTLtjp\":\"4|\n 000001a0 78 53 41 32 73 56 4e 59 57 64 2b 36 4f 34 49 49 |xSA2sVNYWd+6O4II|\n 000001b0 64 58 6a 36 65 36 58 2f 6b 6e 54 6e 35 53 6a 78 |dXj6e6X/knTn5Sjx|\n 000001c0 56 72 30 4b 6f 69 31 74 44 31 4d 57 42 48 45 4a |Vr0Koi1tD1MWBHEJ|\n 000001d0 32 6f 78 77 49 69 46 50 52 4c 66 69 50 4e 5a 7a |2oxwIiFPRLfiPNZz|\n 000001e0 4d 73 4d 52 4b 33 62 36 50 57 74 6d 6b 62 4a 67 |MsMRK3b6PWtmkbJg|\n 000001f0 52 74 46 44 67 22 7d 7d 2c 22 73 74 61 74 65 5f |RtFDg\"}},\"state_|\n 00000200 6b 65 79 22 3a 22 22 2c 22 74 79 70 65 22 3a 22 |key\":\"\",\"type\":\"|\n 00000210 6d 2e 72 6f 6f 6d 2e 63 72 65 61 74 65 22 7d |m.room.create\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=13) \"m.room.create\",\n StateKey: (*string)(0xc000937470)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=72 cap=548) {\n 00000000 7b 22 63 72 65 61 74 6f 72 22 3a 22 40 61 6e 6f |{\"creator\":\"@ano|\n 00000010 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 34 39 32 |n-20201231_23492|\n 00000020 37 2d 31 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 |7-10:localhost:8|\n 00000030 38 30 30 22 2c 22 72 6f 6f 6d 5f 76 65 72 73 69 |800\",\"room_versi|\n 00000040 6f 6e 22 3a 22 36 22 7d |on\":\"6\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 1,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572401,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) {\n },\n AuthEvents: ([]string) {\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 91,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691ca0)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000118900)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=663 cap=704) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 5d 2c |QasCOOaIg0rEU\"],|\n 00000040 22 63 6f 6e 74 65 6e 74 22 3a 7b 22 64 69 73 70 |\"content\":{\"disp|\n 00000050 6c 61 79 6e 61 6d 65 22 3a 22 61 6e 6f 6e 2d 32 |layname\":\"anon-2|\n 00000060 30 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 |0201231_234927-1|\n 00000070 30 22 2c 22 6d 65 6d 62 65 72 73 68 69 70 22 3a |0\",\"membership\":|\n 00000080 22 6a 6f 69 6e 22 7d 2c 22 64 65 70 74 68 22 3a |\"join\"},\"depth\":|\n 00000090 32 2c 22 68 61 73 68 65 73 22 3a 7b 22 73 68 61 |2,\"hashes\":{\"sha|\n 000000a0 32 35 36 22 3a 22 4d 76 33 6d 31 2f 35 41 45 78 |256\":\"Mv3m1/5AEx|\n 000000b0 56 55 71 59 69 37 33 76 4e 37 52 69 78 69 30 31 |VUqYi73vN7Rixi01|\n 000000c0 4a 4b 65 44 7a 6c 70 66 59 32 44 6a 32 61 6b 2b |JKeDzlpfY2Dj2ak+|\n 000000d0 73 22 7d 2c 22 6f 72 69 67 69 6e 22 3a 22 6c 6f |s\"},\"origin\":\"lo|\n 000000e0 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 6f |calhost:8800\",\"o|\n 000000f0 72 69 67 69 6e 5f 73 65 72 76 65 72 5f 74 73 22 |rigin_server_ts\"|\n 00000100 3a 31 36 30 39 34 35 38 35 37 32 34 30 31 2c 22 |:1609458572401,\"|\n 00000110 70 72 65 76 5f 65 76 65 6e 74 73 22 3a 5b 22 24 |prev_events\":[\"$|\n 00000120 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 51 69 |oRY9Otcj7_6wQsQi|\n 00000130 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 51 61 |qtNQdsdohsGDW4Qa|\n 00000140 73 43 4f 4f 61 49 67 30 72 45 55 22 5d 2c 22 70 |sCOOaIg0rEU\"],\"p|\n 00000150 72 65 76 5f 73 74 61 74 65 22 3a 5b 5d 2c 22 72 |rev_state\":[],\"r|\n 00000160 6f 6f 6d 5f 69 64 22 3a 22 21 36 4e 73 5a 4f 66 |oom_id\":\"!6NsZOf|\n 00000170 72 44 72 45 75 58 52 57 65 73 3a 6c 6f 63 61 6c |rDrEuXRWes:local|\n 00000180 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 65 6e 64 |host:8800\",\"send|\n 00000190 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 |er\":\"@anon-20201|\n 000001a0 32 33 31 5f 32 33 34 39 32 37 2d 31 30 3a 6c 6f |231_234927-10:lo|\n 000001b0 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 |calhost:8800\",\"s|\n 000001c0 69 67 6e 61 74 75 72 65 73 22 3a 7b 22 6c 6f 63 |ignatures\":{\"loc|\n 000001d0 61 6c 68 6f 73 74 3a 38 38 30 30 22 3a 7b 22 65 |alhost:8800\":{\"e|\n 000001e0 64 32 35 35 31 39 3a 4e 54 4c 74 6a 70 22 3a 22 |d25519:NTLtjp\":\"|\n 000001f0 66 48 41 76 68 63 57 56 71 6c 4a 53 70 58 31 5a |fHAvhcWVqlJSpX1Z|\n 00000200 41 7a 55 56 76 38 34 5a 48 48 57 31 46 4b 59 64 |AzUVv84ZHHW1FKYd|\n 00000210 61 46 39 48 69 67 38 38 6f 70 6e 78 54 4d 5a 4a |aF9Hig88opnxTMZJ|\n 00000220 77 65 59 59 32 30 2f 66 64 7a 53 74 68 6e 4b 2f |weYY20/fdzSthnK/|\n 00000230 31 4a 45 48 37 51 6b 46 49 4e 76 35 73 45 69 50 |1JEH7QkFINv5sEiP|\n 00000240 55 2b 33 72 42 77 22 7d 7d 2c 22 73 74 61 74 65 |U+3rBw\"}},\"state|\n 00000250 5f 6b 65 79 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 |_key\":\"@anon-202|\n 00000260 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 30 3a |01231_234927-10:|\n 00000270 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c |localhost:8800\",|\n 00000280 22 74 79 70 65 22 3a 22 6d 2e 72 6f 6f 6d 2e 6d |\"type\":\"m.room.m|\n 00000290 65 6d 62 65 72 22 7d |ember\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=13) \"m.room.member\",\n StateKey: (*string)(0xc0009373f0)((len=39) \"@anon-20201231_234927-10:localhost:8800\"),\n Content: (gomatrixserverlib.RawJSON) (len=61 cap=630) {\n 00000000 7b 22 64 69 73 70 6c 61 79 6e 61 6d 65 22 3a 22 |{\"displayname\":\"|\n 00000010 61 6e 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 |anon-20201231_23|\n 00000020 34 39 32 37 2d 31 30 22 2c 22 6d 65 6d 62 65 72 |4927-10\",\"member|\n 00000030 73 68 69 70 22 3a 22 6a 6f 69 6e 22 7d |ship\":\"join\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 2,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572401,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\"\n },\n AuthEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 92,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691be0)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000118140)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=951 cap=1024) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 |$tSdN7fMyVbdcjhh|\n 00000050 69 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 |iDlIOjBHLRl6Bh0Y|\n 00000060 75 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 |uIaEAF8VrM1s\"],\"|\n 00000070 63 6f 6e 74 65 6e 74 22 3a 7b 22 62 61 6e 22 3a |content\":{\"ban\":|\n 00000080 35 30 2c 22 65 76 65 6e 74 73 22 3a 7b 22 6d 2e |50,\"events\":{\"m.|\n 00000090 72 6f 6f 6d 2e 61 6c 69 61 73 65 73 22 3a 30 2c |room.aliases\":0,|\n 000000a0 22 6d 2e 72 6f 6f 6d 2e 61 76 61 74 61 72 22 3a |\"m.room.avatar\":|\n 000000b0 35 30 2c 22 6d 2e 72 6f 6f 6d 2e 63 61 6e 6f 6e |50,\"m.room.canon|\n 000000c0 69 63 61 6c 5f 61 6c 69 61 73 22 3a 35 30 2c 22 |ical_alias\":50,\"|\n 000000d0 6d 2e 72 6f 6f 6d 2e 68 69 73 74 6f 72 79 5f 76 |m.room.history_v|\n 000000e0 69 73 69 62 69 6c 69 74 79 22 3a 31 30 30 2c 22 |isibility\":100,\"|\n 000000f0 6d 2e 72 6f 6f 6d 2e 6e 61 6d 65 22 3a 35 30 2c |m.room.name\":50,|\n 00000100 22 6d 2e 72 6f 6f 6d 2e 70 6f 77 65 72 5f 6c 65 |\"m.room.power_le|\n 00000110 76 65 6c 73 22 3a 31 30 30 7d 2c 22 65 76 65 6e |vels\":100},\"even|\n 00000120 74 73 5f 64 65 66 61 75 6c 74 22 3a 30 2c 22 69 |ts_default\":0,\"i|\n 00000130 6e 76 69 74 65 22 3a 30 2c 22 6b 69 63 6b 22 3a |nvite\":0,\"kick\":|\n 00000140 35 30 2c 22 6e 6f 74 69 66 69 63 61 74 69 6f 6e |50,\"notification|\n 00000150 73 22 3a 7b 22 72 6f 6f 6d 22 3a 35 30 7d 2c 22 |s\":{\"room\":50},\"|\n 00000160 72 65 64 61 63 74 22 3a 35 30 2c 22 73 74 61 74 |redact\":50,\"stat|\n 00000170 65 5f 64 65 66 61 75 6c 74 22 3a 35 30 2c 22 75 |e_default\":50,\"u|\n 00000180 73 65 72 73 22 3a 7b 22 40 61 6e 6f 6e 2d 32 30 |sers\":{\"@anon-20|\n 00000190 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 30 |201231_234927-10|\n 000001a0 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 |:localhost:8800\"|\n 000001b0 3a 31 30 30 7d 2c 22 75 73 65 72 73 5f 64 65 66 |:100},\"users_def|\n 000001c0 61 75 6c 74 22 3a 30 7d 2c 22 64 65 70 74 68 22 |ault\":0},\"depth\"|\n 000001d0 3a 33 2c 22 68 61 73 68 65 73 22 3a 7b 22 73 68 |:3,\"hashes\":{\"sh|\n 000001e0 61 32 35 36 22 3a 22 77 68 6d 49 56 77 49 4b 61 |a256\":\"whmIVwIKa|\n 000001f0 34 2f 65 36 71 2f 77 48 75 6a 45 47 66 55 30 4c |4/e6q/wHujEGfU0L|\n 00000200 2b 4e 68 36 5a 6a 71 6d 56 72 37 71 45 72 72 72 |+Nh6ZjqmVr7qErrr|\n 00000210 6f 6b 22 7d 2c 22 6f 72 69 67 69 6e 22 3a 22 6c |ok\"},\"origin\":\"l|\n 00000220 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 |ocalhost:8800\",\"|\n 00000230 6f 72 69 67 69 6e 5f 73 65 72 76 65 72 5f 74 73 |origin_server_ts|\n 00000240 22 3a 31 36 30 39 34 35 38 35 37 32 34 30 31 2c |\":1609458572401,|\n 00000250 22 70 72 65 76 5f 65 76 65 6e 74 73 22 3a 5b 22 |\"prev_events\":[\"|\n 00000260 24 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 |$tSdN7fMyVbdcjhh|\n 00000270 69 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 |iDlIOjBHLRl6Bh0Y|\n 00000280 75 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 |uIaEAF8VrM1s\"],\"|\n 00000290 70 72 65 76 5f 73 74 61 74 65 22 3a 5b 5d 2c 22 |prev_state\":[],\"|\n 000002a0 72 6f 6f 6d 5f 69 64 22 3a 22 21 36 4e 73 5a 4f |room_id\":\"!6NsZO|\n 000002b0 66 72 44 72 45 75 58 52 57 65 73 3a 6c 6f 63 61 |frDrEuXRWes:loca|\n 000002c0 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 65 6e |lhost:8800\",\"sen|\n 000002d0 64 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 |der\":\"@anon-2020|\n 000002e0 31 32 33 31 5f 32 33 34 39 32 37 2d 31 30 3a 6c |1231_234927-10:l|\n 000002f0 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 |ocalhost:8800\",\"|\n 00000300 73 69 67 6e 61 74 75 72 65 73 22 3a 7b 22 6c 6f |signatures\":{\"lo|\n 00000310 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 3a 7b 22 |calhost:8800\":{\"|\n 00000320 65 64 32 35 35 31 39 3a 4e 54 4c 74 6a 70 22 3a |ed25519:NTLtjp\":|\n 00000330 22 2f 32 39 49 6d 63 61 4f 61 37 7a 77 56 73 66 |\"/29ImcaOa7zwVsf|\n 00000340 46 5a 68 44 47 69 33 51 37 71 54 44 55 6c 46 33 |FZhDGi3Q7qTDUlF3|\n 00000350 61 4e 30 6f 6b 68 32 58 6f 35 64 78 52 77 66 54 |aN0okh2Xo5dxRwfT|\n 00000360 6e 73 4d 6f 76 30 59 47 44 6a 79 64 6a 70 47 47 |nsMov0YGDjydjpGG|\n 00000370 48 2f 48 6d 79 44 50 65 74 4d 73 46 61 34 56 77 |H/HmyDPetMsFa4Vw|\n 00000380 6a 68 58 45 39 44 67 22 7d 7d 2c 22 73 74 61 74 |jhXE9Dg\"}},\"stat|\n 00000390 65 5f 6b 65 79 22 3a 22 22 2c 22 74 79 70 65 22 |e_key\":\"\",\"type\"|\n 000003a0 3a 22 6d 2e 72 6f 6f 6d 2e 70 6f 77 65 72 5f 6c |:\"m.room.power_l|\n 000003b0 65 76 65 6c 73 22 7d |evels\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=19) \"m.room.power_levels\",\n StateKey: (*string)(0xc000937370)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=335 cap=903) {\n 00000000 7b 22 62 61 6e 22 3a 35 30 2c 22 65 76 65 6e 74 |{\"ban\":50,\"event|\n 00000010 73 22 3a 7b 22 6d 2e 72 6f 6f 6d 2e 61 6c 69 61 |s\":{\"m.room.alia|\n 00000020 73 65 73 22 3a 30 2c 22 6d 2e 72 6f 6f 6d 2e 61 |ses\":0,\"m.room.a|\n 00000030 76 61 74 61 72 22 3a 35 30 2c 22 6d 2e 72 6f 6f |vatar\":50,\"m.roo|\n 00000040 6d 2e 63 61 6e 6f 6e 69 63 61 6c 5f 61 6c 69 61 |m.canonical_alia|\n 00000050 73 22 3a 35 30 2c 22 6d 2e 72 6f 6f 6d 2e 68 69 |s\":50,\"m.room.hi|\n 00000060 73 74 6f 72 79 5f 76 69 73 69 62 69 6c 69 74 79 |story_visibility|\n 00000070 22 3a 31 30 30 2c 22 6d 2e 72 6f 6f 6d 2e 6e 61 |\":100,\"m.room.na|\n 00000080 6d 65 22 3a 35 30 2c 22 6d 2e 72 6f 6f 6d 2e 70 |me\":50,\"m.room.p|\n 00000090 6f 77 65 72 5f 6c 65 76 65 6c 73 22 3a 31 30 30 |ower_levels\":100|\n 000000a0 7d 2c 22 65 76 65 6e 74 73 5f 64 65 66 61 75 6c |},\"events_defaul|\n 000000b0 74 22 3a 30 2c 22 69 6e 76 69 74 65 22 3a 30 2c |t\":0,\"invite\":0,|\n 000000c0 22 6b 69 63 6b 22 3a 35 30 2c 22 6e 6f 74 69 66 |\"kick\":50,\"notif|\n 000000d0 69 63 61 74 69 6f 6e 73 22 3a 7b 22 72 6f 6f 6d |ications\":{\"room|\n 000000e0 22 3a 35 30 7d 2c 22 72 65 64 61 63 74 22 3a 35 |\":50},\"redact\":5|\n 000000f0 30 2c 22 73 74 61 74 65 5f 64 65 66 61 75 6c 74 |0,\"state_default|\n 00000100 22 3a 35 30 2c 22 75 73 65 72 73 22 3a 7b 22 40 |\":50,\"users\":{\"@|\n 00000110 61 6e 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 |anon-20201231_23|\n 00000120 34 39 32 37 2d 31 30 3a 6c 6f 63 61 6c 68 6f 73 |4927-10:localhos|\n 00000130 74 3a 38 38 30 30 22 3a 31 30 30 7d 2c 22 75 73 |t:8800\":100},\"us|\n 00000140 65 72 73 5f 64 65 66 61 75 6c 74 22 3a 30 7d |ers_default\":0}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 3,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572401,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n },\n AuthEvents: ([]string) (len=2 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 93,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691b40)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000035ec0)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=683 cap=704) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 6a 6f 69 6e 5f 72 |ontent\":{\"join_r|\n 000000b0 75 6c 65 22 3a 22 70 75 62 6c 69 63 22 7d 2c 22 |ule\":\"public\"},\"|\n 000000c0 64 65 70 74 68 22 3a 34 2c 22 68 61 73 68 65 73 |depth\":4,\"hashes|\n 000000d0 22 3a 7b 22 73 68 61 32 35 36 22 3a 22 67 4b 6f |\":{\"sha256\":\"gKo|\n 000000e0 63 76 54 39 39 71 66 57 79 74 35 41 73 58 53 6c |cvT99qfWyt5AsXSl|\n 000000f0 53 57 77 44 67 6f 48 30 64 30 43 5a 76 64 70 63 |SWwDgoH0d0CZvdpc|\n 00000100 65 65 48 46 64 7a 34 38 22 7d 2c 22 6f 72 69 67 |eeHFdz48\"},\"orig|\n 00000110 69 6e 22 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 |in\":\"localhost:8|\n 00000120 38 30 30 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 |800\",\"origin_ser|\n 00000130 76 65 72 5f 74 73 22 3a 31 36 30 39 34 35 38 35 |ver_ts\":16094585|\n 00000140 37 32 34 30 31 2c 22 70 72 65 76 5f 65 76 65 6e |72401,\"prev_even|\n 00000150 74 73 22 3a 5b 22 24 6f 49 64 52 45 61 34 71 70 |ts\":[\"$oIdREa4qp|\n 00000160 69 57 59 45 78 55 69 6c 36 41 64 4b 75 44 58 75 |iWYExUil6AdKuDXu|\n 00000170 38 49 47 57 4d 75 77 47 54 7a 66 30 45 4c 5f 75 |8IGWMuwGTzf0EL_u|\n 00000180 75 38 22 5d 2c 22 70 72 65 76 5f 73 74 61 74 65 |u8\"],\"prev_state|\n 00000190 22 3a 5b 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 |\":[],\"room_id\":\"|\n 000001a0 21 36 4e 73 5a 4f 66 72 44 72 45 75 58 52 57 65 |!6NsZOfrDrEuXRWe|\n 000001b0 73 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |s:localhost:8800|\n 000001c0 22 2c 22 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f |\",\"sender\":\"@ano|\n 000001d0 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 34 39 32 |n-20201231_23492|\n 000001e0 37 2d 31 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 |7-10:localhost:8|\n 000001f0 38 30 30 22 2c 22 73 69 67 6e 61 74 75 72 65 73 |800\",\"signatures|\n 00000200 22 3a 7b 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 |\":{\"localhost:88|\n 00000210 30 30 22 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 |00\":{\"ed25519:NT|\n 00000220 4c 74 6a 70 22 3a 22 6f 36 74 70 35 56 31 64 42 |Ltjp\":\"o6tp5V1dB|\n 00000230 44 44 62 36 42 55 76 47 42 32 7a 71 38 54 35 46 |DDb6BUvGB2zq8T5F|\n 00000240 7a 51 4f 65 43 47 31 4c 56 76 6f 2f 34 6e 7a 77 |zQOeCG1LVvo/4nzw|\n 00000250 32 48 70 7a 36 74 48 61 50 47 49 48 79 50 59 73 |2Hpz6tHaPGIHyPYs|\n 00000260 76 6b 69 6e 6f 73 42 7a 58 6f 79 6b 45 67 58 43 |vkinosBzXoykEgXC|\n 00000270 4d 59 6c 42 38 39 4b 54 77 7a 61 42 51 22 7d 7d |MYlB89KTwzaBQ\"}}|\n 00000280 2c 22 73 74 61 74 65 5f 6b 65 79 22 3a 22 22 2c |,\"state_key\":\"\",|\n 00000290 22 74 79 70 65 22 3a 22 6d 2e 72 6f 6f 6d 2e 6a |\"type\":\"m.room.j|\n 000002a0 6f 69 6e 5f 72 75 6c 65 73 22 7d |oin_rules\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$RpMI-IqFQDpMKgkeEPvbDJGKL4OBKrxhihFOMfVcus8\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=17) \"m.room.join_rules\",\n StateKey: (*string)(0xc0009372f0)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=22 cap=536) {\n 00000000 7b 22 6a 6f 69 6e 5f 72 75 6c 65 22 3a 22 70 75 |{\"join_rule\":\"pu|\n 00000010 62 6c 69 63 22 7d |blic\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 4,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572401,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 94,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691aa0)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000035d40)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=700 cap=768) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 68 69 73 74 6f 72 |ontent\":{\"histor|\n 000000b0 79 5f 76 69 73 69 62 69 6c 69 74 79 22 3a 22 73 |y_visibility\":\"s|\n 000000c0 68 61 72 65 64 22 7d 2c 22 64 65 70 74 68 22 3a |hared\"},\"depth\":|\n 000000d0 35 2c 22 68 61 73 68 65 73 22 3a 7b 22 73 68 61 |5,\"hashes\":{\"sha|\n 000000e0 32 35 36 22 3a 22 76 59 6c 64 39 38 4f 56 53 4d |256\":\"vYld98OVSM|\n 000000f0 33 71 38 58 31 77 32 42 52 71 39 74 64 78 36 6e |3q8X1w2BRq9tdx6n|\n 00000100 76 57 35 61 71 72 4e 37 45 32 66 76 46 65 57 59 |vW5aqrN7E2fvFeWY|\n 00000110 59 22 7d 2c 22 6f 72 69 67 69 6e 22 3a 22 6c 6f |Y\"},\"origin\":\"lo|\n 00000120 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 6f |calhost:8800\",\"o|\n 00000130 72 69 67 69 6e 5f 73 65 72 76 65 72 5f 74 73 22 |rigin_server_ts\"|\n 00000140 3a 31 36 30 39 34 35 38 35 37 32 34 30 31 2c 22 |:1609458572401,\"|\n 00000150 70 72 65 76 5f 65 76 65 6e 74 73 22 3a 5b 22 24 |prev_events\":[\"$|\n 00000160 52 70 4d 49 2d 49 71 46 51 44 70 4d 4b 67 6b 65 |RpMI-IqFQDpMKgke|\n 00000170 45 50 76 62 44 4a 47 4b 4c 34 4f 42 4b 72 78 68 |EPvbDJGKL4OBKrxh|\n 00000180 69 68 46 4f 4d 66 56 63 75 73 38 22 5d 2c 22 70 |ihFOMfVcus8\"],\"p|\n 00000190 72 65 76 5f 73 74 61 74 65 22 3a 5b 5d 2c 22 72 |rev_state\":[],\"r|\n 000001a0 6f 6f 6d 5f 69 64 22 3a 22 21 36 4e 73 5a 4f 66 |oom_id\":\"!6NsZOf|\n 000001b0 72 44 72 45 75 58 52 57 65 73 3a 6c 6f 63 61 6c |rDrEuXRWes:local|\n 000001c0 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 65 6e 64 |host:8800\",\"send|\n 000001d0 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 |er\":\"@anon-20201|\n 000001e0 32 33 31 5f 32 33 34 39 32 37 2d 31 30 3a 6c 6f |231_234927-10:lo|\n 000001f0 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 |calhost:8800\",\"s|\n 00000200 69 67 6e 61 74 75 72 65 73 22 3a 7b 22 6c 6f 63 |ignatures\":{\"loc|\n 00000210 61 6c 68 6f 73 74 3a 38 38 30 30 22 3a 7b 22 65 |alhost:8800\":{\"e|\n 00000220 64 32 35 35 31 39 3a 4e 54 4c 74 6a 70 22 3a 22 |d25519:NTLtjp\":\"|\n 00000230 71 7a 47 66 78 75 53 73 50 4f 74 33 6f 36 37 64 |qzGfxuSsPOt3o67d|\n 00000240 71 6d 37 50 71 57 2f 65 73 36 63 51 33 62 4d 2f |qm7PqW/es6cQ3bM/|\n 00000250 7a 42 58 71 71 61 52 57 61 4a 4c 4a 64 77 4c 35 |zBXqqaRWaJLJdwL5|\n 00000260 6e 50 55 6a 56 45 4a 2f 31 68 69 52 58 45 53 58 |nPUjVEJ/1hiRXESX|\n 00000270 52 76 52 41 62 74 74 58 66 37 63 47 34 38 47 4d |RvRAbttXf7cG48GM|\n 00000280 57 58 2f 6e 42 41 22 7d 7d 2c 22 73 74 61 74 65 |WX/nBA\"}},\"state|\n 00000290 5f 6b 65 79 22 3a 22 22 2c 22 74 79 70 65 22 3a |_key\":\"\",\"type\":|\n 000002a0 22 6d 2e 72 6f 6f 6d 2e 68 69 73 74 6f 72 79 5f |\"m.room.history_|\n 000002b0 76 69 73 69 62 69 6c 69 74 79 22 7d |visibility\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$7uzpTH7bEKeh2-BNUE15Z34t-GLACeCGwk94Wm1BAbA\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=25) \"m.room.history_visibility\",\n StateKey: (*string)(0xc000937270)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=31 cap=600) {\n 00000000 7b 22 68 69 73 74 6f 72 79 5f 76 69 73 69 62 69 |{\"history_visibi|\n 00000010 6c 69 74 79 22 3a 22 73 68 61 72 65 64 22 7d |lity\":\"shared\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 5,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572401,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$RpMI-IqFQDpMKgkeEPvbDJGKL4OBKrxhihFOMfVcus8\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 95,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691a00)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000034ac0)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=787 cap=896) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 52 70 4d 49 2d 49 71 46 51 44 70 4d 4b 67 6b |$RpMI-IqFQDpMKgk|\n 00000050 65 45 50 76 62 44 4a 47 4b 4c 34 4f 42 4b 72 78 |eEPvbDJGKL4OBKrx|\n 00000060 68 69 68 46 4f 4d 66 56 63 75 73 38 22 2c 22 24 |hihFOMfVcus8\",\"$|\n 00000070 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 69 |oIdREa4qpiWYExUi|\n 00000080 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 77 |l6AdKuDXu8IGWMuw|\n 00000090 47 54 7a 66 30 45 4c 5f 75 75 38 22 5d 2c 22 63 |GTzf0EL_uu8\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 61 76 61 74 61 72 |ontent\":{\"avatar|\n 000000b0 5f 75 72 6c 22 3a 22 22 2c 22 64 69 73 70 6c 61 |_url\":\"\",\"displa|\n 000000c0 79 6e 61 6d 65 22 3a 22 61 6e 6f 6e 2d 32 30 32 |yname\":\"anon-202|\n 000000d0 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 31 22 |01231_234927-11\"|\n 000000e0 2c 22 6d 65 6d 62 65 72 73 68 69 70 22 3a 22 6a |,\"membership\":\"j|\n 000000f0 6f 69 6e 22 7d 2c 22 64 65 70 74 68 22 3a 36 2c |oin\"},\"depth\":6,|\n 00000100 22 68 61 73 68 65 73 22 3a 7b 22 73 68 61 32 35 |\"hashes\":{\"sha25|\n 00000110 36 22 3a 22 51 2f 57 45 70 5a 2b 62 67 56 67 58 |6\":\"Q/WEpZ+bgVgX|\n 00000120 64 6a 67 51 41 6a 48 54 72 44 30 33 54 42 4d 36 |djgQAjHTrD03TBM6|\n 00000130 53 6c 47 39 68 58 64 52 55 2f 4b 43 50 4c 51 22 |SlG9hXdRU/KCPLQ\"|\n 00000140 7d 2c 22 6f 72 69 67 69 6e 22 3a 22 6c 6f 63 61 |},\"origin\":\"loca|\n 00000150 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 6f 72 69 |lhost:8800\",\"ori|\n 00000160 67 69 6e 5f 73 65 72 76 65 72 5f 74 73 22 3a 31 |gin_server_ts\":1|\n 00000170 36 30 39 34 35 38 35 37 32 35 36 39 2c 22 70 72 |609458572569,\"pr|\n 00000180 65 76 5f 65 76 65 6e 74 73 22 3a 5b 22 24 37 75 |ev_events\":[\"$7u|\n 00000190 7a 70 54 48 37 62 45 4b 65 68 32 2d 42 4e 55 45 |zpTH7bEKeh2-BNUE|\n 000001a0 31 35 5a 33 34 74 2d 47 4c 41 43 65 43 47 77 6b |15Z34t-GLACeCGwk|\n 000001b0 39 34 57 6d 31 42 41 62 41 22 5d 2c 22 70 72 65 |94Wm1BAbA\"],\"pre|\n 000001c0 76 5f 73 74 61 74 65 22 3a 5b 5d 2c 22 72 6f 6f |v_state\":[],\"roo|\n 000001d0 6d 5f 69 64 22 3a 22 21 36 4e 73 5a 4f 66 72 44 |m_id\":\"!6NsZOfrD|\n 000001e0 72 45 75 58 52 57 65 73 3a 6c 6f 63 61 6c 68 6f |rEuXRWes:localho|\n 000001f0 73 74 3a 38 38 30 30 22 2c 22 73 65 6e 64 65 72 |st:8800\",\"sender|\n 00000200 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 32 33 |\":\"@anon-2020123|\n 00000210 31 5f 32 33 34 39 32 37 2d 31 31 3a 6c 6f 63 61 |1_234927-11:loca|\n 00000220 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 73 69 67 |lhost:8800\",\"sig|\n 00000230 6e 61 74 75 72 65 73 22 3a 7b 22 6c 6f 63 61 6c |natures\":{\"local|\n 00000240 68 6f 73 74 3a 38 38 30 30 22 3a 7b 22 65 64 32 |host:8800\":{\"ed2|\n 00000250 35 35 31 39 3a 4e 54 4c 74 6a 70 22 3a 22 6b 44 |5519:NTLtjp\":\"kD|\n 00000260 34 47 7a 35 72 55 6f 33 71 5a 78 38 49 4c 6c 31 |4Gz5rUo3qZx8ILl1|\n 00000270 64 76 66 75 56 38 68 4e 4e 49 4f 48 65 76 6a 68 |dvfuV8hNNIOHevjh|\n 00000280 51 76 77 6b 73 64 68 71 66 6b 4f 66 2f 50 47 63 |QvwksdhqfkOf/PGc|\n 00000290 61 79 67 41 48 68 68 74 38 79 4d 38 44 41 47 4b |aygAHhht8yM8DAGK|\n 000002a0 50 63 53 38 73 30 6f 30 42 65 4a 30 73 56 71 6e |PcS8s0o0BeJ0sVqn|\n 000002b0 70 66 44 67 22 7d 7d 2c 22 73 74 61 74 65 5f 6b |pfDg\"}},\"state_k|\n 000002c0 65 79 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 |ey\":\"@anon-20201|\n 000002d0 32 33 31 5f 32 33 34 39 32 37 2d 31 31 3a 6c 6f |231_234927-11:lo|\n 000002e0 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 74 |calhost:8800\",\"t|\n 000002f0 79 70 65 22 3a 22 6d 2e 72 6f 6f 6d 2e 6d 65 6d |ype\":\"m.room.mem|\n 00000300 62 65 72 22 2c 22 75 6e 73 69 67 6e 65 64 22 3a |ber\",\"unsigned\":|\n 00000310 7b 7d 7d |{}}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$tXNuOjB-sauyArpG-E1xwr8izMwi7xeAc_PNUeELFiA\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-11:localhost:8800\",\n Type: (string) (len=13) \"m.room.member\",\n StateKey: (*string)(0xc0009371f0)((len=39) \"@anon-20201231_234927-11:localhost:8800\"),\n Content: (gomatrixserverlib.RawJSON) (len=77 cap=728) {\n 00000000 7b 22 61 76 61 74 61 72 5f 75 72 6c 22 3a 22 22 |{\"avatar_url\":\"\"|\n 00000010 2c 22 64 69 73 70 6c 61 79 6e 61 6d 65 22 3a 22 |,\"displayname\":\"|\n 00000020 61 6e 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 |anon-20201231_23|\n 00000030 34 39 32 37 2d 31 31 22 2c 22 6d 65 6d 62 65 72 |4927-11\",\"member|\n 00000040 73 68 69 70 22 3a 22 6a 6f 69 6e 22 7d |ship\":\"join\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 6,\n Unsigned: (gomatrixserverlib.RawJSON) (len=2 cap=112) {\n 00000000 7b 7d |{}|\n },\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572569,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$7uzpTH7bEKeh2-BNUE15Z34t-GLACeCGwk94Wm1BAbA\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$RpMI-IqFQDpMKgkeEPvbDJGKL4OBKrxhihFOMfVcus8\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 96,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691940)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000034880)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=663 cap=704) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 62 6f 64 79 22 3a |ontent\":{\"body\":|\n 000000b0 22 62 65 66 6f 72 65 22 2c 22 6d 73 67 74 79 70 |\"before\",\"msgtyp|\n 000000c0 65 22 3a 22 6d 2e 74 65 78 74 22 7d 2c 22 64 65 |e\":\"m.text\"},\"de|\n 000000d0 70 74 68 22 3a 37 2c 22 68 61 73 68 65 73 22 3a |pth\":7,\"hashes\":|\n 000000e0 7b 22 73 68 61 32 35 36 22 3a 22 78 2f 67 55 47 |{\"sha256\":\"x/gUG|\n 000000f0 51 64 73 66 37 54 74 73 70 2f 33 6e 30 73 72 45 |Qdsf7Ttsp/3n0srE|\n 00000100 62 74 39 71 31 55 48 45 4f 43 45 2b 67 70 65 4f |bt9q1UHEOCE+gpeO|\n 00000110 64 42 46 30 32 38 22 7d 2c 22 6f 72 69 67 69 6e |dBF028\"},\"origin|\n 00000120 22 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 |\":\"localhost:880|\n 00000130 30 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 76 65 |0\",\"origin_serve|\n 00000140 72 5f 74 73 22 3a 31 36 30 39 34 35 38 35 37 32 |r_ts\":1609458572|\n 00000150 36 32 32 2c 22 70 72 65 76 5f 65 76 65 6e 74 73 |622,\"prev_events|\n 00000160 22 3a 5b 22 24 74 58 4e 75 4f 6a 42 2d 73 61 75 |\":[\"$tXNuOjB-sau|\n 00000170 79 41 72 70 47 2d 45 31 78 77 72 38 69 7a 4d 77 |yArpG-E1xwr8izMw|\n 00000180 69 37 78 65 41 63 5f 50 4e 55 65 45 4c 46 69 41 |i7xeAc_PNUeELFiA|\n 00000190 22 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 21 36 |\"],\"room_id\":\"!6|\n 000001a0 4e 73 5a 4f 66 72 44 72 45 75 58 52 57 65 73 3a |NsZOfrDrEuXRWes:|\n 000001b0 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c |localhost:8800\",|\n 000001c0 22 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f 6e 2d |\"sender\":\"@anon-|\n 000001d0 32 30 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d |20201231_234927-|\n 000001e0 31 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 |10:localhost:880|\n 000001f0 30 22 2c 22 73 69 67 6e 61 74 75 72 65 73 22 3a |0\",\"signatures\":|\n 00000200 7b 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |{\"localhost:8800|\n 00000210 22 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 4c 74 |\":{\"ed25519:NTLt|\n 00000220 6a 70 22 3a 22 68 68 46 48 6e 64 64 31 38 5a 4c |jp\":\"hhFHndd18ZL|\n 00000230 67 66 78 50 78 72 72 33 38 53 5a 6a 74 39 57 44 |gfxPxrr38SZjt9WD|\n 00000240 68 33 50 47 5a 7a 39 36 43 30 53 4a 6a 4a 4e 66 |h3PGZz96C0SJjJNf|\n 00000250 78 6c 6e 69 79 30 70 34 4f 46 31 63 5a 57 36 30 |xlniy0p4OF1cZW60|\n 00000260 48 72 59 77 4c 63 4e 45 4f 54 33 2f 56 4f 6a 64 |HrYwLcNEOT3/VOjd|\n 00000270 63 66 49 49 54 6a 51 7a 55 41 77 22 7d 7d 2c 22 |cfIITjQzUAw\"}},\"|\n 00000280 74 79 70 65 22 3a 22 6d 2e 72 6f 6f 6d 2e 6d 65 |type\":\"m.room.me|\n 00000290 73 73 61 67 65 22 7d |ssage\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$Cg9eUoBWmZ22ln0PPheQUaGNsNeGJZ5LppE-_E1kE0c\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=14) \"m.room.message\",\n StateKey: (*string)(<nil>),\n Content: (gomatrixserverlib.RawJSON) (len=36 cap=536) {\n 00000000 7b 22 62 6f 64 79 22 3a 22 62 65 66 6f 72 65 22 |{\"body\":\"before\"|\n 00000010 2c 22 6d 73 67 74 79 70 65 22 3a 22 6d 2e 74 65 |,\"msgtype\":\"m.te|\n 00000020 78 74 22 7d |xt\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 7,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572622,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$tXNuOjB-sauyArpG-E1xwr8izMwi7xeAc_PNUeELFiA\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 97,\n TransactionID: (*api.TransactionID)(0xc0006919c0)({\n SessionID: (int64) 13,\n TransactionID: (string) (len=2) \"25\"\n }),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc0006918a0)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000034240)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=682 cap=704) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 6d 79 5f 6b 65 79 |ontent\":{\"my_key|\n 000000b0 22 3a 22 62 65 66 6f 72 65 22 7d 2c 22 64 65 70 |\":\"before\"},\"dep|\n 000000c0 74 68 22 3a 38 2c 22 68 61 73 68 65 73 22 3a 7b |th\":8,\"hashes\":{|\n 000000d0 22 73 68 61 32 35 36 22 3a 22 4f 73 5a 69 65 42 |\"sha256\":\"OsZieB|\n 000000e0 37 73 2b 51 4d 69 63 55 4e 48 75 4c 37 61 42 4b |7s+QMicUNHuL7aBK|\n 000000f0 6b 55 48 50 44 64 67 2b 73 4d 4d 38 4a 34 44 46 |kUHPDdg+sMM8J4DF|\n 00000100 57 4d 67 76 6b 22 7d 2c 22 6f 72 69 67 69 6e 22 |WMgvk\"},\"origin\"|\n 00000110 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |:\"localhost:8800|\n 00000120 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 76 65 72 |\",\"origin_server|\n 00000130 5f 74 73 22 3a 31 36 30 39 34 35 38 35 37 32 36 |_ts\":16094585726|\n 00000140 33 38 2c 22 70 72 65 76 5f 65 76 65 6e 74 73 22 |38,\"prev_events\"|\n 00000150 3a 5b 22 24 43 67 39 65 55 6f 42 57 6d 5a 32 32 |:[\"$Cg9eUoBWmZ22|\n 00000160 6c 6e 30 50 50 68 65 51 55 61 47 4e 73 4e 65 47 |ln0PPheQUaGNsNeG|\n 00000170 4a 5a 35 4c 70 70 45 2d 5f 45 31 6b 45 30 63 22 |JZ5LppE-_E1kE0c\"|\n 00000180 5d 2c 22 70 72 65 76 5f 73 74 61 74 65 22 3a 5b |],\"prev_state\":[|\n 00000190 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 21 36 4e |],\"room_id\":\"!6N|\n 000001a0 73 5a 4f 66 72 44 72 45 75 58 52 57 65 73 3a 6c |sZOfrDrEuXRWes:l|\n 000001b0 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 |ocalhost:8800\",\"|\n 000001c0 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 |sender\":\"@anon-2|\n 000001d0 30 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 |0201231_234927-1|\n 000001e0 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |0:localhost:8800|\n 000001f0 22 2c 22 73 69 67 6e 61 74 75 72 65 73 22 3a 7b |\",\"signatures\":{|\n 00000200 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 |\"localhost:8800\"|\n 00000210 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 4c 74 6a |:{\"ed25519:NTLtj|\n 00000220 70 22 3a 22 7a 75 76 4a 2f 30 39 50 31 74 48 6b |p\":\"zuvJ/09P1tHk|\n 00000230 4f 69 64 70 6b 66 42 2b 69 4a 58 36 77 2b 4f 77 |OidpkfB+iJX6w+Ow|\n 00000240 66 46 55 69 70 49 79 4c 4a 2f 6a 56 71 31 32 6c |fFUipIyLJ/jVq12l|\n 00000250 6e 75 61 6b 33 55 51 32 75 54 30 2b 49 48 53 73 |nuak3UQ2uT0+IHSs|\n 00000260 74 55 4e 72 53 50 2f 73 47 6b 69 58 71 42 69 38 |tUNrSP/sGkiXqBi8|\n 00000270 77 58 39 5a 4e 48 59 4c 42 67 22 7d 7d 2c 22 73 |wX9ZNHYLBg\"}},\"s|\n 00000280 74 61 74 65 5f 6b 65 79 22 3a 22 22 2c 22 74 79 |tate_key\":\"\",\"ty|\n 00000290 70 65 22 3a 22 61 2e 6d 61 64 65 75 70 2e 74 65 |pe\":\"a.madeup.te|\n 000002a0 73 74 2e 73 74 61 74 65 22 7d |st.state\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$sJZtgzlWGcejHDNO6OEcGX8Mj2TGoCNN7kwzsSAmnwg\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=19) \"a.madeup.test.state\",\n StateKey: (*string)(0xc0009370e0)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=19 cap=536) {\n 00000000 7b 22 6d 79 5f 6b 65 79 22 3a 22 62 65 66 6f 72 |{\"my_key\":\"befor|\n 00000010 65 22 7d |e\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 8,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572638,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$Cg9eUoBWmZ22ln0PPheQUaGNsNeGJZ5LppE-_E1kE0c\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 98,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691800)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000747f40)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=944 cap=1024) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 58 4e 75 4f 6a 42 2d 73 61 75 79 41 72 70 47 |tXNuOjB-sauyArpG|\n 00000080 2d 45 31 78 77 72 38 69 7a 4d 77 69 37 78 65 41 |-E1xwr8izMwi7xeA|\n 00000090 63 5f 50 4e 55 65 45 4c 46 69 41 22 5d 2c 22 63 |c_PNUeELFiA\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 6d 65 6d 62 65 72 |ontent\":{\"member|\n 000000b0 73 68 69 70 22 3a 22 6c 65 61 76 65 22 7d 2c 22 |ship\":\"leave\"},\"|\n 000000c0 64 65 70 74 68 22 3a 39 2c 22 68 61 73 68 65 73 |depth\":9,\"hashes|\n 000000d0 22 3a 7b 22 73 68 61 32 35 36 22 3a 22 39 76 6b |\":{\"sha256\":\"9vk|\n 000000e0 4b 32 36 67 61 63 36 4d 45 38 62 33 52 69 74 68 |K26gac6ME8b3Rith|\n 000000f0 57 75 79 32 72 45 73 37 52 64 7a 70 47 36 4b 30 |Wuy2rEs7RdzpG6K0|\n 00000100 6d 6e 71 74 69 32 46 6b 22 7d 2c 22 6f 72 69 67 |mnqti2Fk\"},\"orig|\n 00000110 69 6e 22 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 |in\":\"localhost:8|\n 00000120 38 30 30 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 |800\",\"origin_ser|\n 00000130 76 65 72 5f 74 73 22 3a 31 36 30 39 34 35 38 35 |ver_ts\":16094585|\n 00000140 37 32 36 36 33 2c 22 70 72 65 76 5f 65 76 65 6e |72663,\"prev_even|\n 00000150 74 73 22 3a 5b 22 24 73 4a 5a 74 67 7a 6c 57 47 |ts\":[\"$sJZtgzlWG|\n 00000160 63 65 6a 48 44 4e 4f 36 4f 45 63 47 58 38 4d 6a |cejHDNO6OEcGX8Mj|\n 00000170 32 54 47 6f 43 4e 4e 37 6b 77 7a 73 53 41 6d 6e |2TGoCNN7kwzsSAmn|\n 00000180 77 67 22 5d 2c 22 70 72 65 76 5f 73 74 61 74 65 |wg\"],\"prev_state|\n 00000190 22 3a 5b 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 |\":[],\"room_id\":\"|\n 000001a0 21 36 4e 73 5a 4f 66 72 44 72 45 75 58 52 57 65 |!6NsZOfrDrEuXRWe|\n 000001b0 73 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |s:localhost:8800|\n 000001c0 22 2c 22 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f |\",\"sender\":\"@ano|\n 000001d0 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 34 39 32 |n-20201231_23492|\n 000001e0 37 2d 31 31 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 |7-11:localhost:8|\n 000001f0 38 30 30 22 2c 22 73 69 67 6e 61 74 75 72 65 73 |800\",\"signatures|\n 00000200 22 3a 7b 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 |\":{\"localhost:88|\n 00000210 30 30 22 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 |00\":{\"ed25519:NT|\n 00000220 4c 74 6a 70 22 3a 22 43 68 39 38 72 59 66 76 6e |Ltjp\":\"Ch98rYfvn|\n 00000230 56 63 33 73 65 46 57 4e 4b 7a 70 37 47 72 57 68 |Vc3seFWNKzp7GrWh|\n 00000240 39 33 42 63 73 47 74 6d 4b 58 52 63 73 77 31 55 |93BcsGtmKXRcsw1U|\n 00000250 6e 59 50 59 33 6a 41 35 33 75 31 6d 4a 61 69 69 |nYPY3jA53u1mJaii|\n 00000260 7a 73 66 76 4b 53 77 4a 36 4a 48 34 50 65 50 33 |zsfvKSwJ6JH4PeP3|\n 00000270 77 31 59 31 6b 52 31 67 56 6f 36 43 41 22 7d 7d |w1Y1kR1gVo6CA\"}}|\n 00000280 2c 22 73 74 61 74 65 5f 6b 65 79 22 3a 22 40 61 |,\"state_key\":\"@a|\n 00000290 6e 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 34 |non-20201231_234|\n 000002a0 39 32 37 2d 31 31 3a 6c 6f 63 61 6c 68 6f 73 74 |927-11:localhost|\n 000002b0 3a 38 38 30 30 22 2c 22 74 79 70 65 22 3a 22 6d |:8800\",\"type\":\"m|\n 000002c0 2e 72 6f 6f 6d 2e 6d 65 6d 62 65 72 22 2c 22 75 |.room.member\",\"u|\n 000002d0 6e 73 69 67 6e 65 64 22 3a 7b 22 70 72 65 76 5f |nsigned\":{\"prev_|\n 000002e0 63 6f 6e 74 65 6e 74 22 3a 7b 22 61 76 61 74 61 |content\":{\"avata|\n 000002f0 72 5f 75 72 6c 22 3a 22 22 2c 22 64 69 73 70 6c |r_url\":\"\",\"displ|\n 00000300 61 79 6e 61 6d 65 22 3a 22 61 6e 6f 6e 2d 32 30 |ayname\":\"anon-20|\n 00000310 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 31 |201231_234927-11|\n 00000320 22 2c 22 6d 65 6d 62 65 72 73 68 69 70 22 3a 22 |\",\"membership\":\"|\n 00000330 6a 6f 69 6e 22 7d 2c 22 70 72 65 76 5f 73 65 6e |join\"},\"prev_sen|\n 00000340 64 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 |der\":\"@anon-2020|\n 00000350 31 32 33 31 5f 32 33 34 39 32 37 2d 31 31 3a 6c |1231_234927-11:l|\n 00000360 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 |ocalhost:8800\",\"|\n 00000370 72 65 70 6c 61 63 65 73 5f 73 74 61 74 65 22 3a |replaces_state\":|\n 00000380 22 24 74 58 4e 75 4f 6a 42 2d 73 61 75 79 41 72 |\"$tXNuOjB-sauyAr|\n 00000390 70 47 2d 45 31 78 77 72 38 69 7a 4d 77 69 37 78 |pG-E1xwr8izMwi7x|\n 000003a0 65 41 63 5f 50 4e 55 65 45 4c 46 69 41 22 7d 7d |eAc_PNUeELFiA\"}}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$CnN3ADE_tvsKSR64U4sfe0kst6lvC4ai2yWaiVk1Xtg\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-11:localhost:8800\",\n Type: (string) (len=13) \"m.room.member\",\n StateKey: (*string)(0xc000937060)((len=39) \"@anon-20201231_234927-11:localhost:8800\"),\n Content: (gomatrixserverlib.RawJSON) (len=22 cap=856) {\n 00000000 7b 22 6d 65 6d 62 65 72 73 68 69 70 22 3a 22 6c |{\"membership\":\"l|\n 00000010 65 61 76 65 22 7d |eave\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 9,\n Unsigned: (gomatrixserverlib.RawJSON) (len=214 cap=295) {\n 00000000 7b 22 70 72 65 76 5f 63 6f 6e 74 65 6e 74 22 3a |{\"prev_content\":|\n 00000010 7b 22 61 76 61 74 61 72 5f 75 72 6c 22 3a 22 22 |{\"avatar_url\":\"\"|\n 00000020 2c 22 64 69 73 70 6c 61 79 6e 61 6d 65 22 3a 22 |,\"displayname\":\"|\n 00000030 61 6e 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 |anon-20201231_23|\n 00000040 34 39 32 37 2d 31 31 22 2c 22 6d 65 6d 62 65 72 |4927-11\",\"member|\n 00000050 73 68 69 70 22 3a 22 6a 6f 69 6e 22 7d 2c 22 70 |ship\":\"join\"},\"p|\n 00000060 72 65 76 5f 73 65 6e 64 65 72 22 3a 22 40 61 6e |rev_sender\":\"@an|\n 00000070 6f 6e 2d 32 30 32 30 31 32 33 31 5f 32 33 34 39 |on-20201231_2349|\n 00000080 32 37 2d 31 31 3a 6c 6f 63 61 6c 68 6f 73 74 3a |27-11:localhost:|\n 00000090 38 38 30 30 22 2c 22 72 65 70 6c 61 63 65 73 5f |8800\",\"replaces_|\n 000000a0 73 74 61 74 65 22 3a 22 24 74 58 4e 75 4f 6a 42 |state\":\"$tXNuOjB|\n 000000b0 2d 73 61 75 79 41 72 70 47 2d 45 31 78 77 72 38 |-sauyArpG-E1xwr8|\n 000000c0 69 7a 4d 77 69 37 78 65 41 63 5f 50 4e 55 65 45 |izMwi7xeAc_PNUeE|\n 000000d0 4c 46 69 41 22 7d |LFiA\"}|\n },\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572663,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$sJZtgzlWGcejHDNO6OEcGX8Mj2TGoCNN7kwzsSAmnwg\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tXNuOjB-sauyArpG-E1xwr8izMwi7xeAc_PNUeELFiA\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 99,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691720)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000747e00)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=663 cap=704) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 62 6f 64 79 22 3a |ontent\":{\"body\":|\n 000000b0 22 61 66 74 65 72 22 2c 22 6d 73 67 74 79 70 65 |\"after\",\"msgtype|\n 000000c0 22 3a 22 6d 2e 74 65 78 74 22 7d 2c 22 64 65 70 |\":\"m.text\"},\"dep|\n 000000d0 74 68 22 3a 31 30 2c 22 68 61 73 68 65 73 22 3a |th\":10,\"hashes\":|\n 000000e0 7b 22 73 68 61 32 35 36 22 3a 22 68 67 45 35 42 |{\"sha256\":\"hgE5B|\n 000000f0 37 6e 36 63 79 5a 30 76 79 4a 37 54 53 5a 45 62 |7n6cyZ0vyJ7TSZEb|\n 00000100 6b 55 79 31 33 50 77 33 52 44 66 5a 65 4f 51 68 |kUy13Pw3RDfZeOQh|\n 00000110 33 4b 76 58 62 73 22 7d 2c 22 6f 72 69 67 69 6e |3KvXbs\"},\"origin|\n 00000120 22 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 |\":\"localhost:880|\n 00000130 30 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 76 65 |0\",\"origin_serve|\n 00000140 72 5f 74 73 22 3a 31 36 30 39 34 35 38 35 37 32 |r_ts\":1609458572|\n 00000150 36 38 34 2c 22 70 72 65 76 5f 65 76 65 6e 74 73 |684,\"prev_events|\n 00000160 22 3a 5b 22 24 43 6e 4e 33 41 44 45 5f 74 76 73 |\":[\"$CnN3ADE_tvs|\n 00000170 4b 53 52 36 34 55 34 73 66 65 30 6b 73 74 36 6c |KSR64U4sfe0kst6l|\n 00000180 76 43 34 61 69 32 79 57 61 69 56 6b 31 58 74 67 |vC4ai2yWaiVk1Xtg|\n 00000190 22 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 21 36 |\"],\"room_id\":\"!6|\n 000001a0 4e 73 5a 4f 66 72 44 72 45 75 58 52 57 65 73 3a |NsZOfrDrEuXRWes:|\n 000001b0 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c |localhost:8800\",|\n 000001c0 22 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f 6e 2d |\"sender\":\"@anon-|\n 000001d0 32 30 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d |20201231_234927-|\n 000001e0 31 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 |10:localhost:880|\n 000001f0 30 22 2c 22 73 69 67 6e 61 74 75 72 65 73 22 3a |0\",\"signatures\":|\n 00000200 7b 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |{\"localhost:8800|\n 00000210 22 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 4c 74 |\":{\"ed25519:NTLt|\n 00000220 6a 70 22 3a 22 32 2f 4d 45 30 66 7a 33 64 6c 4c |jp\":\"2/ME0fz3dlL|\n 00000230 4b 30 46 4f 31 73 47 59 63 4e 34 72 52 48 4b 43 |K0FO1sGYcN4rRHKC|\n 00000240 30 2b 6d 30 47 68 6e 61 4a 4e 46 30 2b 44 70 30 |0+m0GhnaJNF0+Dp0|\n 00000250 37 6b 76 77 54 72 47 47 31 4f 34 37 6c 30 30 4b |7kvwTrGG1O47l00K|\n 00000260 58 35 34 71 4e 33 2f 58 6c 61 53 79 37 56 52 58 |X54qN3/XlaSy7VRX|\n 00000270 6e 53 37 66 4a 42 4f 54 4b 44 67 22 7d 7d 2c 22 |nS7fJBOTKDg\"}},\"|\n 00000280 74 79 70 65 22 3a 22 6d 2e 72 6f 6f 6d 2e 6d 65 |type\":\"m.room.me|\n 00000290 73 73 61 67 65 22 7d |ssage\"}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$tSFQdcxPbYHVo9LNLUPFnS7FKWv5feqM3tZDoSaBlxQ\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=14) \"m.room.message\",\n StateKey: (*string)(<nil>),\n Content: (gomatrixserverlib.RawJSON) (len=35 cap=536) {\n 00000000 7b 22 62 6f 64 79 22 3a 22 61 66 74 65 72 22 2c |{\"body\":\"after\",|\n 00000010 22 6d 73 67 74 79 70 65 22 3a 22 6d 2e 74 65 78 |\"msgtype\":\"m.tex|\n 00000020 74 22 7d |t\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 10,\n Unsigned: (gomatrixserverlib.RawJSON) <nil>,\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572684,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$CnN3ADE_tvsKSR64U4sfe0kst6lvC4ai2yWaiVk1Xtg\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 100,\n TransactionID: (*api.TransactionID)(0xc0006917a0)({\n SessionID: (int64) 13,\n TransactionID: (string) (len=2) \"26\"\n }),\n ExcludeFromSync: (bool) false\n },\n (types.StreamEvent) {\n HeaderedEvent: (*gomatrixserverlib.HeaderedEvent)(0xc000691660)({\n EventHeader: (gomatrixserverlib.EventHeader) {\n RoomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n },\n Event: (*gomatrixserverlib.Event)(0xc000747d00)({\n redacted: (bool) false,\n eventJSON: ([]uint8) (len=850 cap=896) {\n 00000000 7b 22 61 75 74 68 5f 65 76 65 6e 74 73 22 3a 5b |{\"auth_events\":[|\n 00000010 22 24 6f 52 59 39 4f 74 63 6a 37 5f 36 77 51 73 |\"$oRY9Otcj7_6wQs|\n 00000020 51 69 71 74 4e 51 64 73 64 6f 68 73 47 44 57 34 |QiqtNQdsdohsGDW4|\n 00000030 51 61 73 43 4f 4f 61 49 67 30 72 45 55 22 2c 22 |QasCOOaIg0rEU\",\"|\n 00000040 24 6f 49 64 52 45 61 34 71 70 69 57 59 45 78 55 |$oIdREa4qpiWYExU|\n 00000050 69 6c 36 41 64 4b 75 44 58 75 38 49 47 57 4d 75 |il6AdKuDXu8IGWMu|\n 00000060 77 47 54 7a 66 30 45 4c 5f 75 75 38 22 2c 22 24 |wGTzf0EL_uu8\",\"$|\n 00000070 74 53 64 4e 37 66 4d 79 56 62 64 63 6a 68 68 69 |tSdN7fMyVbdcjhhi|\n 00000080 44 6c 49 4f 6a 42 48 4c 52 6c 36 42 68 30 59 75 |DlIOjBHLRl6Bh0Yu|\n 00000090 49 61 45 41 46 38 56 72 4d 31 73 22 5d 2c 22 63 |IaEAF8VrM1s\"],\"c|\n 000000a0 6f 6e 74 65 6e 74 22 3a 7b 22 6d 79 5f 6b 65 79 |ontent\":{\"my_key|\n 000000b0 22 3a 22 61 66 74 65 72 22 7d 2c 22 64 65 70 74 |\":\"after\"},\"dept|\n 000000c0 68 22 3a 31 31 2c 22 68 61 73 68 65 73 22 3a 7b |h\":11,\"hashes\":{|\n 000000d0 22 73 68 61 32 35 36 22 3a 22 53 5a 33 39 5a 38 |\"sha256\":\"SZ39Z8|\n 000000e0 53 31 49 73 6f 31 76 37 48 47 66 55 51 55 66 6c |S1Iso1v7HGfUQUfl|\n 000000f0 73 4a 66 57 4c 6a 62 69 51 50 74 62 51 6e 38 62 |sJfWLjbiQPtbQn8b|\n 00000100 39 71 35 4a 63 22 7d 2c 22 6f 72 69 67 69 6e 22 |9q5Jc\"},\"origin\"|\n 00000110 3a 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |:\"localhost:8800|\n 00000120 22 2c 22 6f 72 69 67 69 6e 5f 73 65 72 76 65 72 |\",\"origin_server|\n 00000130 5f 74 73 22 3a 31 36 30 39 34 35 38 35 37 32 37 |_ts\":16094585727|\n 00000140 30 37 2c 22 70 72 65 76 5f 65 76 65 6e 74 73 22 |07,\"prev_events\"|\n 00000150 3a 5b 22 24 74 53 46 51 64 63 78 50 62 59 48 56 |:[\"$tSFQdcxPbYHV|\n 00000160 6f 39 4c 4e 4c 55 50 46 6e 53 37 46 4b 57 76 35 |o9LNLUPFnS7FKWv5|\n 00000170 66 65 71 4d 33 74 5a 44 6f 53 61 42 6c 78 51 22 |feqM3tZDoSaBlxQ\"|\n 00000180 5d 2c 22 70 72 65 76 5f 73 74 61 74 65 22 3a 5b |],\"prev_state\":[|\n 00000190 5d 2c 22 72 6f 6f 6d 5f 69 64 22 3a 22 21 36 4e |],\"room_id\":\"!6N|\n 000001a0 73 5a 4f 66 72 44 72 45 75 58 52 57 65 73 3a 6c |sZOfrDrEuXRWes:l|\n 000001b0 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 |ocalhost:8800\",\"|\n 000001c0 73 65 6e 64 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 |sender\":\"@anon-2|\n 000001d0 30 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 |0201231_234927-1|\n 000001e0 30 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 |0:localhost:8800|\n 000001f0 22 2c 22 73 69 67 6e 61 74 75 72 65 73 22 3a 7b |\",\"signatures\":{|\n 00000200 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 |\"localhost:8800\"|\n 00000210 3a 7b 22 65 64 32 35 35 31 39 3a 4e 54 4c 74 6a |:{\"ed25519:NTLtj|\n 00000220 70 22 3a 22 6b 38 6a 62 71 58 6c 56 35 2b 6e 75 |p\":\"k8jbqXlV5+nu|\n 00000230 64 70 2f 6b 52 70 6f 43 39 4c 58 4a 7a 39 47 77 |dp/kRpoC9LXJz9Gw|\n 00000240 39 2f 6a 44 54 46 76 47 4b 44 4c 31 73 53 36 67 |9/jDTFvGKDL1sS6g|\n 00000250 55 64 33 35 47 79 41 68 6a 46 46 4d 2b 65 6e 39 |Ud35GyAhjFFM+en9|\n 00000260 48 73 77 4b 75 6f 4e 31 2b 4c 33 6b 66 66 67 79 |HswKuoN1+L3kffgy|\n 00000270 41 70 70 6b 6b 58 49 78 42 67 22 7d 7d 2c 22 73 |AppkkXIxBg\"}},\"s|\n 00000280 74 61 74 65 5f 6b 65 79 22 3a 22 22 2c 22 74 79 |tate_key\":\"\",\"ty|\n 00000290 70 65 22 3a 22 61 2e 6d 61 64 65 75 70 2e 74 65 |pe\":\"a.madeup.te|\n 000002a0 73 74 2e 73 74 61 74 65 22 2c 22 75 6e 73 69 67 |st.state\",\"unsig|\n 000002b0 6e 65 64 22 3a 7b 22 70 72 65 76 5f 63 6f 6e 74 |ned\":{\"prev_cont|\n 000002c0 65 6e 74 22 3a 7b 22 6d 79 5f 6b 65 79 22 3a 22 |ent\":{\"my_key\":\"|\n 000002d0 62 65 66 6f 72 65 22 7d 2c 22 70 72 65 76 5f 73 |before\"},\"prev_s|\n 000002e0 65 6e 64 65 72 22 3a 22 40 61 6e 6f 6e 2d 32 30 |ender\":\"@anon-20|\n 000002f0 32 30 31 32 33 31 5f 32 33 34 39 32 37 2d 31 30 |201231_234927-10|\n 00000300 3a 6c 6f 63 61 6c 68 6f 73 74 3a 38 38 30 30 22 |:localhost:8800\"|\n 00000310 2c 22 72 65 70 6c 61 63 65 73 5f 73 74 61 74 65 |,\"replaces_state|\n 00000320 22 3a 22 24 73 4a 5a 74 67 7a 6c 57 47 63 65 6a |\":\"$sJZtgzlWGcej|\n 00000330 48 44 4e 4f 36 4f 45 63 47 58 38 4d 6a 32 54 47 |HDNO6OEcGX8Mj2TG|\n 00000340 6f 43 4e 4e 37 6b 77 7a 73 53 41 6d 6e 77 67 22 |oCNN7kwzsSAmnwg\"|\n 00000350 7d 7d |}}|\n },\n fields: (gomatrixserverlib.eventFormatV2Fields) {\n eventFields: (gomatrixserverlib.eventFields) {\n EventID: (string) (len=44) \"$qUjYSqPXnyZ5tywcvasSfUKTllMqLBXkQvGUN8K_sH0\",\n RoomID: (string) (len=32) \"!6NsZOfrDrEuXRWes:localhost:8800\",\n Sender: (string) (len=39) \"@anon-20201231_234927-10:localhost:8800\",\n Type: (string) (len=19) \"a.madeup.test.state\",\n StateKey: (*string)(0xc000936f50)(\"\"),\n Content: (gomatrixserverlib.RawJSON) (len=18 cap=728) {\n 00000000 7b 22 6d 79 5f 6b 65 79 22 3a 22 61 66 74 65 72 |{\"my_key\":\"after|\n 00000010 22 7d |\"}|\n },\n Redacts: (string) \"\",\n Depth: (int64) 11,\n Unsigned: (gomatrixserverlib.RawJSON) (len=156 cap=203) {\n 00000000 7b 22 70 72 65 76 5f 63 6f 6e 74 65 6e 74 22 3a |{\"prev_content\":|\n 00000010 7b 22 6d 79 5f 6b 65 79 22 3a 22 62 65 66 6f 72 |{\"my_key\":\"befor|\n 00000020 65 22 7d 2c 22 70 72 65 76 5f 73 65 6e 64 65 72 |e\"},\"prev_sender|\n 00000030 22 3a 22 40 61 6e 6f 6e 2d 32 30 32 30 31 32 33 |\":\"@anon-2020123|\n 00000040 31 5f 32 33 34 39 32 37 2d 31 30 3a 6c 6f 63 61 |1_234927-10:loca|\n 00000050 6c 68 6f 73 74 3a 38 38 30 30 22 2c 22 72 65 70 |lhost:8800\",\"rep|\n 00000060 6c 61 63 65 73 5f 73 74 61 74 65 22 3a 22 24 73 |laces_state\":\"$s|\n 00000070 4a 5a 74 67 7a 6c 57 47 63 65 6a 48 44 4e 4f 36 |JZtgzlWGcejHDNO6|\n 00000080 4f 45 63 47 58 38 4d 6a 32 54 47 6f 43 4e 4e 37 |OEcGX8Mj2TGoCNN7|\n 00000090 6b 77 7a 73 53 41 6d 6e 77 67 22 7d |kwzsSAmnwg\"}|\n },\n OriginServerTS: (gomatrixserverlib.Timestamp) 1609458572707,\n Origin: (gomatrixserverlib.ServerName) (len=14) \"localhost:8800\"\n },\n PrevEvents: ([]string) (len=1 cap=4) {\n (string) (len=44) \"$tSFQdcxPbYHVo9LNLUPFnS7FKWv5feqM3tZDoSaBlxQ\"\n },\n AuthEvents: ([]string) (len=3 cap=4) {\n (string) (len=44) \"$oRY9Otcj7_6wQsQiqtNQdsdohsGDW4QasCOOaIg0rEU\",\n (string) (len=44) \"$oIdREa4qpiWYExUil6AdKuDXu8IGWMuwGTzf0EL_uu8\",\n (string) (len=44) \"$tSdN7fMyVbdcjhhiDlIOjBHLRl6Bh0YuIaEAF8VrM1s\"\n }\n },\n roomVersion: (gomatrixserverlib.RoomVersion) (len=1) \"6\"\n })\n }),\n StreamPosition: (types.StreamPosition) 101,\n TransactionID: (*api.TransactionID)(<nil>),\n ExcludeFromSync: (bool) false\n }\n}\n" func="getLeaveResponseForCompleteSync\n\t" file=" [github.com/matrix-org/dendrite/syncapi/storage/shared/syncserver.go:997]"
✖️ For whatever reason, when running in Sytest, it's cut-off and truncated like this. Even if not cut-off, probably has same byte stream problems as above:
spew.Dump(recentStreamEvents)
=>
[server]: (string) (len=44) "$jVm8pxJPPOsNSXWBP5HvD6l8NoRJrnPDnaD99qJc6AA",
[server]: (string) (len=44) "$UmaEKEX5r3wQQlSge8lZ9oaD0UijsZQxv-EVdr-V9pQ",
[server]: (string) (len=44) "$a56mL89gxhgPWf9Bu_FXZfMuE8m_48FhlkoQkC-hE-k"
[server]: }
[server]: },
[server]: roomVersion: (gomatrixserverlib.RoomVersion) (len=1) "6"
[server]: })
[server]: }),
[server]: StreamPosition: (types.StreamPosition) 101,
[server]: TransactionID: (*api.TransactionID)(<nil>),
[server]: ExcludeFromSync: (bool) false
[server]: }
[server]: }
Joining Matrix HQ with Dendrite is currently impossible because of a badly constructed event. In this case, gomatrixserverlib rejects the whole state, aborts the room join and logs the following error:
gomatrixserverlib: sender domain doesn't match origin: \"matrix.orly.cf\" != \"matrix.org\"
The JSON of the corresponding event is:
{
"auth_events": [
[
"$145095128663932ULGxu:matrix.org",
{
"sha256": "Qr4iNEm3Sb+dMQQijh0Fk52B6QLgg2Bj+DSmbSD0gwQ"
}
],
[
"$1416420717069yeQaw:matrix.org",
{
"sha256": "SQbXz8UcBT39JJs/J9hqWb8INde/p4pkr9AG6gk7EtY"
}
],
[
"$1416420717079YOCAM:matrix.org",
{
"sha256": "PYI0qgBD3T2iPoh4nkCNQ+bIfTXJ5BvEA5pgtgLsAEw"
}
]
],
"content": {
"membership": "join"
},
"depth": 87361,
"event_id": "$1451109772178767MVoAx:matrix.org",
"hashes": {
"sha256": "PmApxqj8VK9+Q3WXC6MFCJJddaKgkBNzEBmlqELVURg"
},
"origin": "matrix.org",
"origin_server_ts": 1451109772982,
"prev_events": [
[
"$1451105729744QPsBR:whatthefuck.computer",
{
"sha256": "0knG+e09KD25TX3/7bjsEMg4y1+CIq/dxapaQcXkc7k"
}
]
],
"prev_state": [],
"room_id": "!cURbafjkfsMDVwdRDQ:matrix.org",
"sender": "@ferdinand:matrix.orly.cf",
"signatures": {
"matrix.org": {
"ed25519:auto": "l2i38JcoXt5HmvbvOZLp/r04TE5salSh+FZm9lhZOsK2UdWsjHIN4oxCoXnmYtP27yOsqEvJ2Lq9Jc5jD8tdAA"
},
"matrix.orly.cf": {
"ed25519:a_DqBf": "z0OAWxhLI19/PDd249OHszKNEtirip8osTOd+Sm9h3Q/b5d+lcy2DCquuuCV8RMC1l7hV8p9ukYvjo200yLuAg"
}
},
"state_key": "@ferdinand:matrix.orly.cf",
"type": "m.room.member",
"unsigned": {}
}
Here, gomatrixserverlib should reject this single event instead and go on with the room join.
The shape around this is a bit weird. We might want to rethink it at some point.
Line 486 in f72a635
client-server spec 1.3, 1.2, and even 1.1 are all using /v3/
Describe the bug
The ResolveServer function does not cache responses from the LookupWellKnown function. This causes each call that is made with federationTripper as transport (like Client / FederationClient) to retrieve the well-kown file from https over the network.
To Reproduce
Use the following program:
package main
import (
ctx "context"
"github.com/matrix-org/gomatrixserverlib"
)
func main() {
client := gomatrixserverlib.NewClient(false)
client.GetVersion(ctx.Background(), "matrix.org")
client.GetVersion(ctx.Background(), "matrix.org")
}
Expected behavior
Read well-known file from https once and cache the result for later use, like described in here: https://matrix.org/docs/spec/server_server/r0.1.0#resolving-server-names
Antiquated and nothing uses it, not even CI!
Currently Dendrite and gomatrixserverlib have a number of duplicate event content types (CreateContent
, PowerLevelContent
, etc.). We should consider replacing the Dendrite versions with the gomatrixserverlib versions. This will reduce redundant code and also allow Dendrite to easily do power level checks, etc..
Note that we'll probably want to add JSON keys to gomatrixserverlib's event content types first.
Rooms are a directed acyclic graph. Events contain a depth
field which gives an approximate ordering. The depth
can lie e.g for the events A -> B -> C as nothing stops C saying depth: 11
even though the depth is actually 3
(starting at 1
with A). Basically, we should not use depth
provided by servers.
However, we do. We rely on the depth
to work out topological tokens when backfilling via the CSAPI call /messages
. If two or more events share the same depth
value, we tiebreak based on the stream position (which is just a monotonically increasing integer). This is "okay", but allows attackers to inject events into any point in room history by fiddling with the depth
. This doesn't affect state, just the timeline sent to clients.
We need to calculate depth
for every event we receive based on prev_events
. We may also need to retrospectively update the depth of events when we get told about new events.
The naive solution would be to recalculate the depth for every single event when a new event arrives. This takes θ(n+m)
time per edge where n=nodes and m=edges. To insert m edges takes θ(m^2)
time. There are algorithms which perform much better than this, notably Katriel–Bodlaender which:
runs in time O(mk log^(2)n), where k is the treewidth of the input DAG
We should implement this in GMSL or even as a stand-alone library with an interface for the ordinal data structure:
The ord labels of the nodes are maintained by an
Ordered List data structure ORD, which is a data structure that allows to maintain
a total order over a list of items and to perform the following operations in constant
amortized time [Dietz and Sleator 1987; Bender et al. 2002]: InsertAfter(x, y)
(InsertBefore(x, y)) inserts the item x immediately after (before) the item y in the
total order, Delete(x) removes the item x, the query Order(x, y) determines whether
x precedes y or y precedes x in the total order and Next(x)(Prev(x)) returns the
item that appears immediately after (before) x in the total order. These operations
are implemented by associating integer labels with the items in the list such that
the label associated with x is smaller than the label associated with y iff x precedes
y in the total order.
We should then make a separate component in Dendrite which consumes the roomserver output log and calculates depths for events, and then sends them on (or alternatively, keep the syncapi
in charge of doing this).
NB: We still have the outstanding problem of what to do if the depths change and hence the linearisation of the DAG changes.
NBB: We still need to handle chunks of DAG (e.g joined the room, got some events, leave the room for a while, then rejoin). The above algorithm would need to be applied to each chunk independently, with book-keeping for a chunk along the lines of (from @erikjohnston ):
We already have a function for calculating a server's .well-known. This should be used whenever making a new request to a server, cached, and then used for all subsequent requests.
RFC2782 forbids CNAME records as SRV record targets but we need to check it because Go completely ignores that
type Base64String []byte
It is not clear that the bytes you give it must not be base64 encoded. If they are, it won't behave as you expect. Between @neilalexander and myself, we have wasted multiple dev days hunting down a bug which, at the root cause, was a mistake in how we thought this type worked, because when facing code like
Line 815 in 9ebd9f9
id
is the base64 form, this seems reasonable.
I propose the name Base64Bytes
which more clearly indicates to the reader that this should be the un-encoded form.
It is never valid to call headeredEvent.Event
because that will have Event.roomVersion
as the empty string which will cause a subset of function calls on the event to fail. You have to call headeredEvent.Unwrap()
to get it set correctly.
This isn't a great API shape as it produces subtle failures. Maybe we shouldn't embed Event into HeaderedEvent?
According to alecthomas/gometalinter#590, gometalinter is being deprecated and needs to be replaced with golangci-lint.
Currently we're doing some kind of weird dance in which we're encoding some part of the URL twice, which makes it impossible to decode on the receiving end.
Hi,i wanted to know if these modules require tests?
The spec states that the format of the Authorization
header on the Federation API is given by RFC 7235. Part of that specification allows for zero or more spaces or tabs around the commas in the parameter list. For example, the following should be a valid Authorization
header:
Authorization: X-Matrix origin=foo , key="ed25519:1", sig="sig", destination="bar"
Yet upon looking at gomatrixserverlib
's source code, I believe it would reject this header:
gomatrixserverlib/fclient/request.go
Lines 321 to 351 in c2391f7
This fact was omitted from the summary of RFC 7235 in the spec, which is likely why it didn't make it into gomatrixserverlib
as well. That is now being corrected: matrix-org/matrix-spec#1818
The code should be updated to allow whitespace in the parameter list in the header, such that any homeserver implementations following the spec would not have their federation requests rejected by homeservers that rely on gomatrixserverlib.
See matrix-org/matrix-spec#1817 for more context.
This was vital pre Go 1.8 but since then things have changed:
A RawMessage value now marshals the same as its pointer type.
So the example failure in this comment actually works fine in newer Go versions:
// RawJSON is a reimplementation of json.RawMessage that supports being used as a value type
//
// For example:
//
// jsonBytes, _ := json.Marshal(struct{
// RawMessage json.RawMessage
// RawJSON RawJSON
// }{
// json.RawMessage(`"Hello"`),
// RawJSON(`"World"`),
// })
//
// Results in:
//
// {"RawMessage":"IkhlbGxvIg==","RawJSON":"World"}
//
// See https://play.golang.org/p/FzhKIJP8-I for a full example.
type RawJSON []byte
go version
: go1.15.2 linux/amd64Right now, Dendrite identifies itself with the User-Agent string Go-http-client/2.0
. This should be something like Dendrite/0.3.5
, just as Synapse does.
/.well-known/matrix/server
Go-http-client/2.0
Synapse/1.24.0
When sending a [video] message to the room via Matrix iOS SDK client to https://server_endpoint/_matrix/client/r0/rooms/!roomId:host/send/m.room.message/messageId
with following request body:
{"body":"video_5e1f43c.mp4","info":{"duration":30466.666666666664,"thumbnail_url":"mxc:\/\/localhost\/e76b28e344ae8c388cc19e42fb7eb73d397b1931001a0fd62f26f199d1b3cd1a","mimetype":"video\/mp4","w":480,"h":270,"thumbnail_info":{"size":0,"mimetype":"image\/jpeg","w":0,"h":0}},"url":"mxc:\/\/localhost\/55e9366d7a68d7970b8071145d631745d36231a4f2eeccab366a61f8ef521626","msgtype":"m.video"}
we get an unexpected error:
{
"errcode": "M_BAD_JSON",
"error": "gomatrixserverlib: bad JSON: value is outside of safe range"
}
This suggests that the request body is invalid JSON -- at least according to the Canonical JSON Appendix.
This showed that the JSON is invalid in the case of the Room Version
6.
To my understanding this should't happen?
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Go script for validating the failing request body can be found here
It then complains about index out of range
.
Causes matrix-org/dendrite#3013
In federationclient.go / RoomHierarchy
, we fall back to the unstable endpoint if the spec endpoint returns 404.
However, the spec states that 404 is a valid response of this endpoint, in the case where a room is unknown or the server is otherwise unable to peek it. But the error that is ultimately returned isn't this 404, but rather another M_UNRECOGNIZED
404 error from the unstable endpoint.
This just obfuscates the original error, making logs harder to interpret - perhaps we should not just check for 404 on the spec endpoint but also check for M_UNRECOGNIZED
before falling back to unstable, and if both the unstable and spec endpoints error, somehow pass on both errors with some information that we re-tried.
Or maybe, since MSC2946 has been spec for quite a while, we just remove the whole fallback to unstable mechanism in the first place?
Ignore me, confused myself.
The federation client doesn't appear to verify signatures of responses at all. After removing the signatures
key from my HS implementation the responses are still passed through just as with the signatures.
gomatrixserverlib/eventauth.go
Lines 29 to 33 in 9f1b58c
Since go encourages us not to repeat constant string literals, we should make these public and reference them wherever needed.
GMSL is for federation only.
Usages:
GenerateLoginToken
is called and the token passed to userapi.PerformDeviceCreationRequest
token, err := auth.GenerateAccessToken()
. We should use that instead in all cases.History:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.